Articles of winapi

截取所有WM_MOUSEWHEEL消息

我一直在通过Windows API进行search,寻找一种方法来拦截所有WM_MOUSESCROLL消息,然后才能触发它们的透视消息队列。 拦截后,我需要改变一些关于它们的事情,并将它们发送到不同的[或相同的]消息队列。 我需要相当有效地做到这一点,因为它将在一个相当大的应用程序之上运行。 任何想法,我怎么能做到这一点? 我还没有find一个方法。

如何获得一个文件夹中的所有文件及其子文件夹的名称和pathstring数组在c + +?

我正在做一个程序,我需要得到所有文件的名称和pathstringarray.I可以通过这样做的文件和文件夹path: HANDLE hFind; WIN32_FIND_DATA data; string folder="C:\\*.*"; int num=0; string addresses[1000]; hFind=FindFirstFile(folder.c_str(),&data); if(hFind!=INVALID_HANDLE_VALUE){ do{ addresses[num]=folder.substr(0,folder.length()-3); addresses[num]+=data.cFileName; num++; }while(FindNextFile(hFind,&data)); FindClose(hFind);} 但它只获取文件夹和文件夹名称path只在该文件夹中。我需要获取该文件夹的所有文件和它的子文件夹。如何可以做到这一点?如果可能的话,请使用函数返回string数组。

防止在自定义node.js构build中创build控制台窗口

我正在创build一个不应该向用户显示控制台窗口的node.js自定义版本。 我已经尝试将gyp文件中的链接器configuration更改为2 (应该设置链接器标志 /SUBSYSTEM:WINDOWS ),但是当我运行生成的node.exe二进制文件时,仍然会看到一个控制台窗口。 我怎样才能防止出现控制台窗口? 编辑:进一步的调查显示node.gyp中的链接器configuration没有生效。 生成的node.vcxproj仍然有<Link><SubSystem>Console</SubSystem></Link> (这对我来说很奇怪,因为'UACUIAccess': 'true'的相同部分添加了'UACUIAccess': 'true' ),所以build立的二进制不正确地链接。

DirectShow示例和基类重新定位

从Windows SDK 8.1开始,示例应该可以从开发人员中心下载,如此处所述。 无论如何,我无法在开发中心findDirectShow基础类。 那些可以下载的地方?

如何获得给定HWND窗口的子窗口?

我有给定窗口的句柄。 我怎样枚举它的子窗口?

在C + +的API编程:如何获得Windows 7的控制?

我严格编程C和WinAPI,没有C + +或C#。 我是一个初学者,只是学习绘制控制等。事情是,当我创buildWindows或其他控件,如命令button,他们有Windows Native的外观。 看看这个: 但在Windows 7中,命令button如下所示: 现在,我如何获得我的程序中的命令button,看起来像这样。 这甚至有可能吗? 我正在学习本教程,以供参考:http: //zetcode.com/gui/winapi/ 谢谢。

DWORD_PTR,INT_PTR,LONG_PTR,UINT_PTR,ULONG_PTR何时,如何和为什么?

我发现Windows有一些新的Windows数据types DWORD_PTR, INT_PTR, LONG_PTR, UINT_PTR, ULONG_PTR 你能告诉我什么时候,如何和为什么使用它们?

如何获得在Windows上插入USB设备的供应商ID和产品ID

我在Windows平台上使用Qt。 我想获得并显示从我的本地系统插入的USB设备的供应商ID和产品ID。 以下是我的完整源代码从USB设备获取供应商ID和产品ID。 当我运行我的QT应用程序,它不会给我任何错误。 所以我把USB设备插入系统。 但是我的打印语句显示如下结果 qDebug ()<<pDetData->DevicePath; 我得到的结果为0x4 我的源代码中是否有任何实现错误? 如果是这样,请指导我我做错了什么.. 我错过了其他function吗? 是否有可能根据我的源代码从USB设备获得供应商ID和产品ID(我的代码实现)? 请在下面find我的源代码 static GUID GUID_DEVINTERFACE_USB_DEVICE = { 0xA5DCBF10L, 0x6530, 0x11D2, { 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED } }; HANDLE hInfo = SetupDiGetClassDevs(&GUID_DEVINTERFACE_USB_DEVICE,NULL,NULL, DIGCF_PRESENT | DIGCF_INTERFACEDEVICE); if ( hInfo == INVALID_HANDLE_VALUE ) { qDebug ()<<"invalid"; } else { qDebug ()<<"valid handle"; […]

Win32:如何自定义绘制编辑控件?

我需要实现EM_SETCUEBANNER的function,其中文本提示出现在编辑控件中: 问题是,我不能使用公共控件的版本6,这是获得微软提供的提示横幅所需的。 我已经看着简单地更改编辑控件的文本,并将字体格式为 Dark Gray Italic Text 但它会抛出更改事件( 由更高的组件库提供的组件包装 ),我无法find一种方法来避免。 所以我反而要自定义绘制文本,当控件没有重点和空的时候绘制提示横条文本,否则依靠默认的绘画。 编辑控件不能很好地公开自定义绘图机制, 如ListView,TreeView和其他提供 。 其他人已经看过 ,但这似乎是一个几乎不可能完成的任务: 从现在看,我将不得不处理以下消息: WM_ERASEBKGND,WM_PAINT (出于显而易见的原因) WM_SETFOCUS,WM_KILLFOCUS (防止白色条显示 – 如上所述) WM_CHAR (处理和更新控件中的文本) 而且我还需要find一种方法来在控件中显示插入符号,因为我还没有find一种方法来让Windows为我做这件事,而不用画上我提到的白色条。 这将会非常好玩。 :翻白眼: 鉴于Windows编辑控件从来没有被定制绘制:有谁知道如何自定义绘制Windows编辑控件? 注意 :我也会接受解决我的问题的答案,而不是回答我的问题。 但是任何想要自定义绘制Edit控件的人都会遇到这个问题,可能会想要一个答案。

开发版本中与OutputDebugString相关联的开销

在发布版本中调用OutputDebugString是否有相当大的开销?