草庐IT

windows - 为什么对 GetClipRgn 的结果调用 GetRgnBox 会返回与 GetClipRect 截然不同的矩形?

我在TCanvas上有一个区域有几个子区域需要重新绘制,但其他点不需要。由于不必要的绘画可能很昂贵,我试图通过使用GetClipRgn只重画需要的东西。在Canvas的handle上和checkingifcertainrectsoverlaptheregion.不幸的是,现在绘图以奇怪的方式失败了。所以我调用GetRgnBox在该区域上以获得其边界矩形。从文档中,我希望这会产生与调用GetClipBox完全相同的矩形。在Canvas的handle上。(或者简单地检索它的ClipRect,以这种方式计算它。)但是,这两个rect却截然不同。ClipRect属性(GetClipBox版本)

c++ - Windows中的变量类型

只要有不同大小的不同变量类型,为什么Windows使用宏和移位运算符将2个值映射到一个变量中,例如:这是win32窗口程序的示例://...caseWM_COMMAND:{switch(LOWORD(wParam)){caseIDC_LISTBOX:{switch(HIWORD(wParam)){//handlemessage}}break;}}break;只是为什么Windows不使用两个short类型的变量来代替?还是这有一些特权?谢谢大家 最佳答案 窗口消息只能传递大约2个整数(wParam和lParam参数)。整数值本身不需

c++ - WINAPI - 我想在一个单独的线程中进行消息泵

在WindowsAPI中,制作一个窗口需要一个消息泵来保持窗口运行和更新。现在,写一个消息泵由一个while循环组成,它控制了整个程序,不允许执行其他事情,这是一个大问题。考虑我的代码,它是一个头文件,我称之为CFrame.h(因为在里面我创建了一个名为CFrame的类,它旨在模仿JFrame在Java中)。换句话说,我希望可以创建CFrame的多个实例,以便显示多个窗口,并且消息循环不会在创建第一个窗口后停止窗口。我为函数ThreadExecution()创建了一个新线程,由于某种原因程序刚刚终止,为什么?#defineUNICODE#includeconstwchar_tCLASS

c++ - DeleteFile() 失败但文件存在(文件名很长)

我正在编写一个有错误的备份程序。使用调试器单步调试代码,我发现删除文件时出错。我正在使用CFileFind定位文件,并使用CFileFind::GetFilePath()获取完整路径名。CFileFindfind;BOOLbContinue=find.FindFile(AppendPath(lpszPath,_T("*")));while(bContinue){bContinue=find.FindNextFile();if(!find.IsDirectory()){if(find.IsReadOnly())ClearReadOnlyAttribute(find);if(!::Dele

c++ - 所有文件都有 FILE_ATTRIBUTE_ARCHIVE 属性

我正在开发一个程序,该程序应该从std::vector中的选定目录中检索所有文件的属性。此代码显示了我如何获取文件属性:DWORDattr_flags=GetFileAttributes(file_path);if(attr_flags==INVALID_FILE_ATTRIBUTES){std::cout代码会像这样解析检索到的标志:if(attr_flags&FILE_ATTRIBUTE_ARCHIVE){attrs.push_back(defines::Attributes::kArchive);attr_flags&=~FILE_ATTRIBUTE_ARCHIVE;}if(at

windows - 如何使用 C 更改 Windows 中文件的最后修改日期?

是否有一个C函数调用可以更改Windows中文件或目录的最后修改日期? 最佳答案 您可以使用SetFileTime函数,对于目录,你必须使用CreateFile使用FILE_FLAG_BACKUP_SEMANTICS标志获取目录句柄并将其用作SetFileTime的文件句柄参数,如下所示:hFolder=CreateFile(path,GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_DIRECTORY|FILE_FLAG_BACKUP_SEMANTICS

windows - 监控您自己进程中的内存使用情况

让我们暂时搁置海森堡。我将如何从我自己的进程中监控该进程使用了​​多少内存?(我可能故意低估了问题,梦想有创意的答案......) 最佳答案 Quassnoi是正确的-但它也可能值得检查我们的这个问题:HowtodetermineCPUandmemoryconsumptionfrominsideaprocess其中包括代码示例 关于windows-监控您自己进程中的内存使用情况,我们在StackOverflow上找到一个类似的问题: https://stack

python - Windows XP - 在 Python 中以编程方式静音/取消静音音频

我的机器有两个音频输入:一个用于游戏的麦克风和一个用于吉他的线路。使用其中一个时,重要的是另一个要静音以消除嘶嘶声/静电,所以我希望编写一个小脚本来切换哪个被静音(点击托盘图标,切换到我的输入设备,静音是相当不方便的并取消静音)。我想也许我可以用pywin32做到这一点,但是everything我可以find似乎特定于设置输出音量而不是输入,而且我对win32不够熟悉,甚至不知道在哪里寻找更好的信息。谁能指出我正确的方向? 最佳答案 免责声明:无论如何我都不是Windows编程大师...但这是我最好的猜测根据pywin32FAQ:H

c - 为什么这不编译?

#include#includeintmain(){TCHARbuff[1024];GetLogicalDriveStrings(1024,buff);inti;for(i=0;buff[i]!=0;i+=4)printf("%S",buff+i);}当我尝试使用MSVC编译它时,出现以下错误:http://ahb.me/5T-注释掉GetLogicalDriveStrings(1024,buff);会使代码编译得很好 最佳答案 旧版本的C要求在block的开头声明局部变量,在函数调用之前。将inti;移动到函数的顶部,以与buff

c++ - WCHAR 到 LPCWSTR

当我像下面这样使用CreateFile函数时......它给了我有效的句柄HANDLEhDevice=CreateFile(TEXT("\\\\.\\G:"),0,FILE_SHARE_READ|FILE_SHARE_WRITE,//sharemodeNULL,OPEN_EXISTING,0,NULL);if(hDevice==INVALID_HANDLE_VALUE){qDebug()当我像下面这样使用时......它给我无效的句柄..WCHARDrive[4];qDebug()如何将wchar更改为LPCWSTR谢谢 最佳答案