Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winapi 当子控件接收焦点时获取消息_Winapi_Windows Messages - Fatal编程技术网

Winapi 当子控件接收焦点时获取消息

Winapi 当子控件接收焦点时获取消息,winapi,windows-messages,Winapi,Windows Messages,我有一个控件,其中包含另一个控件。内部控制有时会从其他控制中夺走焦点,我需要在这上面放一块手表,然后再把焦点换回来。我正在对out控件进行子类化(不能对内部控件进行子类化),我正在侦听WM\u SETFOCUS消息,但这只在单击其中一个控件时发生。当焦点被内部控制本身攫取时,我什么也得不到 我做错了什么?也许你需要WM\u KILLFOCUS?WM_KILLFOCUS可以很好地用于抓取焦点的控件,但我在几个地方使用此设置作为用户控件,我不想在每个地方都放置WM_KILLFOCUS手表。“抓取焦点

我有一个控件,其中包含另一个控件。内部控制有时会从其他控制中夺走焦点,我需要在这上面放一块手表,然后再把焦点换回来。我正在对out控件进行子类化(不能对内部控件进行子类化),我正在侦听
WM\u SETFOCUS
消息,但这只在单击其中一个控件时发生。当焦点被内部控制本身攫取时,我什么也得不到


我做错了什么?

也许你需要
WM\u KILLFOCUS
?WM_KILLFOCUS可以很好地用于抓取焦点的控件,但我在几个地方使用此设置作为用户控件,我不想在每个地方都放置WM_KILLFOCUS手表。“抓取焦点”和“将焦点更改回”很可能是错误的解决方案。如果您想阻止控件获得焦点,只需禁用该控件。我同意,这是一个糟糕的解决方案,但这是我唯一可以使用的解决方案。这不是一个解决方案-这确实是您的问题。解决了这个问题,你就不需要在一个黑客上叠加另一个黑客了。