0

我想创建一个在 wm_nclbuttondown 处理程序中失去焦点时将关闭的窗口,就像 Firefox 的菜单按钮窗口所做的那样。但我没能做到。新窗口在创建后会立即失去焦点。

所以我用 spy++ 挖掘,发现 WM_NCLBUTTONDOWN 总是会导致主窗口集中,这是用 spy++ 记录的消息:

在此处输入图像描述

其中0xb13f2是主窗口的hwnd,0x46139a是新窗口的hwnd。

那么如何正确设置焦点呢?

4

1 回答 1

0

我尝试了很多方法:

  1. 将 wm_nclbuttdown 预翻译为 wm_lbuttondown。
  2. nchittest 将所有窗口区域设置为 HTCLIENT,然后尝试手动处理移动和调整大小,但此修改太大而无法继续。
  3. 在 wm_nclbuttondown 处理程序中,发送消息 wm_lbuttondown。
  4. 调用 setfocus 很多。

...

有些工作,但带来其他问题。最后我用spy++记录了firefox的消息,发现只要在需要处理left button down消息的区域让nchittest返回HTCLIENT。

于 2013-04-01T10:21:15.867 回答