草庐IT

c++ - 类似 MSPaint 的应用程序编写。如何正确使用 BitBlt?

我正在使用windows.h(GDI)在C++中编写类似mspaint的简单程序。对于我的程序,我只需要钢笔工具。因此,我需要将主窗口的图片存储在某个地方(例如在内存HDC和HBITMAP中),以便在WM_PAINT消息中绘制它。我什么时候必须首先将窗口的HDC存储到我的内存HDC和HBITMAP?我应该在什么消息中存储窗口?例如,我认为我们不能在WM_CREATE中这样做,因为我们还没有窗口。PatBlt和BitBlt有什么区别?我的应用应该使用什么?如何将窗口的HDC内容复制到我的内存HDC和位图中?我正在尝试做这样的事情:LPRECTlpRect;GetClientRect(hw

c - Windows 服务 C

我已经用C语言编写了一个Windows服务,但是缺少关于用这种语言编写服务的文档意味着我有一些事情需要帮助。我想创建一个配置文件,服务会读取该配置文件以获取一些设置/选项。我想知道最好的方法是什么以及如何去做。服务.exe将与其他文件/程序一起安装在用户指定的位置。我的第一个问题是,我应该将此配置文件保存在与服务.exe相同的目录中,还是应该将其放在我为我的程序创建的%appdata%文件夹中?服务如何找到配置文件。我应该将配置文件的位置存储在注册表中并将注册表项硬编码到服务中吗?或者是否可以安装该服务,使其将配置文件路径作为默认命令行参数?或者我应该将我的配置文件保存在与服务.exe

windows - 简单的多线程互斥示例是不正确的

我希望以随机顺序获得从0到4的数字,但相反,我有一些不同步的困惑我做错了什么?#include#include#includeusingnamespacestd;voidaddQuery(void*v);HANDLEghMutex;intmain(){HANDLEhs[5];ghMutex=CreateMutex(NULL,FALSE,NULL);for(inti=0;i 最佳答案 您必须在锁内读取和写入共享变量。您正在锁外读取它,从而使锁变得无关紧要。但这还不够,因为您的共享变量是一个循环变量,您在没有锁保护的情况下写入该循环变量

c# - Windows 应用程序和 Spy++

我不明白为什么我可以使用Spy++获取某些Windows应用程序的句柄、窗口类等。例如,iexplore.exe,它只是不适用于url文本框或任何文本,如果加载页面中有编辑框区域;还有一些Windows应用程序我只得到外层的属性,而它的内部按钮、文本框或组合框是不可访问的。在这些应用程序中,我应该怎么做才能接触到它们?谢谢:) 最佳答案 这些程序使用无窗口控件。他们不使用标准的Windows控件,而是在一个巨大的容器中自行绘制和处理所有内容。 关于c#-Windows应用程序和Spy++

windows - 什么检测图片类型的方法比较靠谱 : content-type or MIME-sniffing?

我想检测Windows应用程序中的图像文件格式。图像要么从网络(通过HTTP)下载,要么从本地文件加载。对于检测从Web下载的文件的图像文件格式,哪种方法更可靠?文件扩展名是最明显的方式,但通常不正确或丢失HTTPheadercontent-type是一个很好的候选者(我可以检查图像类型而无需通过HTTPHEAD命令下载它),但有时它设置不正确MIME嗅探(通过WindowsAPIFindMimeFromData命令或通过手动检查文件内容的已知签名)是我知道的最后一种方法,但我从未使用过它,我不确定它是否可靠那么,我应该使用什么? 最佳答案

c++ - 为什么我的非所有者绘制的列表框在添加字符串后出现绘图问题?

我正在开发我自己的基于ATL的私有(private)Windows桌面应用程序用户界面框架,它应该具有与AWT几乎相同的类列表和编程结构。(如果我使用的是C#,那么我之前几乎所有的GUI开发都是在WTL或WinForms中完成的。)关于列表框类,我遇到了问题。在我不参与WM_PAINT的情况下,每个其他控件都能够正确地重新绘制自身。列表框?没那么多。这是它的样子:NormalAftermoving由于我不知道实际问题出在哪里,所以这里是我能想到的所有涉及绘图的代码。如果任何其他源代码有帮助,请告诉我。这是我的WM_CTLCOLORLISTBOX处理程序代码:virtualLRESULT

c - WriteFile 与 IO 完成端口问题

我有这段代码,基本上使用IO完成端口将文件写入5次。如您所料,它的效果不是很好。问题是我希望将“hello”写入文件5次,但最终总是只写入一个“hello”。我很困惑,因为该程序打印了5次“写入5个字节”,所以我认为写入完成正常。有人能看出这有什么问题吗?#include#include#defineIOCP_NOMORE3#defineIOCP_WRITE1HANDLEhWriteIoCp;typedefstruct_OVERLAPIOINFO{OVERLAPPEDoverlapped;HANDLEhFile;}OVERLAPIOINFO;HANDLECreateNewComplet

windows - _AVrfpGetProcessName 是做什么的?

函数“_AVrfpGetProcessName”有什么作用?有没有链接可以找到此功能的详细说明? 最佳答案 我相信这是AppVerifier普通GetProcessNameWIN32API函数的检查版本。 关于windows-_AVrfpGetProcessName是做什么的?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9875382/

windows - 获取 unicode 符号的别名

是否有任何WinAPI可以获取Unicode字符的名称?目前我只知道一种方法是解析http://unicode.org/Public/6.1.0/ucd/NamesList.txt文件。 最佳答案 据我所知,没有用于检索该信息的WinAPI函数,但您可以解析UnicodeData.txt(来自unicode.org)文件很容易,这里有该文件的描述UnicodeCharacterDatabase. 关于windows-获取unicode符号的别名,我们在StackOverflow上找到一个

c - 如何查看当前用户是否有管理权限

我可以使用什么WindowsAPI函数来检查运行我的应用程序的当前用户是否具有管理权限?这是我的操作系统详细信息:WINDOWSXP、VISTA和WINDOWS7使用语言:C 最佳答案 即使用户拥有管理权限,也并不意味着您的程序拥有-它需要被提升。这可以由用户明确要求以管理员身份运行它来完成,但通常是由程序本身通过嵌入到可执行文件中的list来请求的。一旦list要求权限,它就不是可选的-在用户批准并根据需要提供密码之前,程序不会运行。 关于c-如何查看当前用户是否有管理权限,我们在St