首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >陷阱WM_SETFOCUS消息

陷阱WM_SETFOCUS消息
EN

Stack Overflow用户
提问于 2010-01-26 17:20:28
回答 2查看 1.9K关注 0票数 1

我想要捕获所有当前窗口上的WM_SETFOCUS消息。那么最好的方法是什么呢?

我认为SetWindowsHookEx可以用于此目的。它可以与WH_CALLWNDPROC或WH_MSGFILTER一起使用吗?

此外,它提到钩子程序必须在单独的DLL中。这是必须的吗。我不能在安装钩子的同一个DLL中有钩子过程。

EN

回答 2

Stack Overflow用户

发布于 2010-01-26 17:28:20

是的,您可以在安装钩子的同一个DLL中使用钩子进程。我相信,您所讨论的需求与您在另一个进程中设置windows钩子有关。

我不熟悉WH_CALLWNDPROC钩子类型,但我相信您可以使用WH_CBT,它被描述为对“基于计算机的培训”应用程序很有用,但似乎也有一些非常有用的功能。通知它的事件之一是:

一个窗口即将接收键盘焦点。

票数 1
EN

Stack Overflow用户

发布于 2010-01-26 17:30:52

钩子proc必须在dll中,但它不必是与用于安装钩子的dll不同的dll。文档提到“单独的dll”的原因是因为他们假设安装钩子的代码将在exe中,而不是dll中。

WH_CALLWNDPROC钩子应该能看到WM_SETFOCUS消息,我不期望WH_MSGFILTER钩子能看到它们,但我不确定。

您应该知道,如果您打算接收WM_SETFOCUS消息,这将不会阻止焦点被设置到窗口。

无论你的问题是什么,windows钩子都不是最好的解决方案。如果您能更具体地说明您正在尝试做什么,我们可能会更有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2138431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档