在 .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/