c++ - WinApi 相当于 .NET KeyPreview

标签 c++ winapi

在 .Net 中有一个称为 KeyPreview 的功能。我怎样才能在 WinApi 中做到这一点。也许我不一定需要这个,但我的 hWnd 有 WM_KEYDOWN,但是当我的文本框有焦点时它不会收到它。我怎样才能做到这一点? 谢谢

*使用纯 Win32API...

是否有替代方案,我该如何处理文本框的 WM_KEYDOWN?

最佳答案

您可以尝试子类化编辑控件。 “实例子类化”,只为一个窗口捕获消息,或“全局子类化”,为该类的所有窗口捕获消息(在您的应用程序中,而不是系统范围内)。

此处的示例 (http://msdn.microsoft.com/en-us/library/ms997565.aspx) 展示了如何子类化编辑控件并捕获 WM_GETDLGCODE 消息 - 将其更改为 WM_KEYDOWN 并不难。

您可能无法预览用于对话命令的键,例如TAB 或 RETURN,因为它们可能被困在食物链的更高层。您可能还需要查看更改 WM_GETDLGCODE。

关于c++ - WinApi 相当于 .NET KeyPreview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2709238/

相关文章:

c++ - 无法将缩略图按钮添加到窗口?

c++ - 为什么HWND_NOTTOPMOST在xp中不能带窗口前景?

c++ - 在数组中查找重复模式

c - 在 Windows 中移动 TreeView 项目

c++ - C++中的PLC功能 block 库

c++ - MSVC++ 2010 中 C++0x 的 <thread> header 的占位符

windows - 如何获取窗口原始大小和位置(wsNormal vs wsMaximized)

windows - 在 Windows 上检测 DisplayPort(相对于 DVI?)?

c++ - 如何引用结构变量并使用或不使用指针进行初始化

c++ - std::list<char> 列表类型为 (char * data, int length)