为什么在一个窗体激活时和不被激活时接收到的消息都是一样的?

myplxdm 2008-05-04 04:22:18
我用钩子函数截获一个窗体的窗口过程WH_CALLWNDPROC,当这个窗体被选中时先接收到WM_NCACTIVATE、然后再接收到WM_ACTIVATE,当选中其它窗体时也同样接收到这两个消息,而且顺序一样,为什么?
...全文
47 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
myplxdm 2008-05-05
  • 打赏
  • 举报
回复
是一个啊
weiym 2008-05-05
  • 打赏
  • 举报
回复
WM_ACTIVATE Notification

--------------------------------------------------------------------------------

The WM_ACTIVATE message is sent to both the window being activated and the window being deactivated. If the windows use the same input queue, the message is sent synchronously, first to the window procedure of the top-level window being deactivated, then to the window procedure of the top-level window being activated. If the windows use different input queues, the message is sent asynchronously, so the window is activated immediately.

Syntax

WM_ACTIVATE

WPARAM wParam
LPARAM lParam;

Parameters

wParam
The low-order word specifies whether the window is being activated or deactivated. This parameter can be one of the following values. The high-order word specifies the minimized state of the window being activated or deactivated. A nonzero value indicates the window is minimized.
WA_ACTIVE
Activated by some method other than a mouse click (for example, by a call to the SetActiveWindow function or by use of the keyboard interface to select the window).
WA_CLICKACTIVE
Activated by a mouse click.
WA_INACTIVE
Deactivated.
lParam
Handle to the window being activated or deactivated, depending on the value of the wParam parameter. If the low-order word of wParam is WA_INACTIVE, lParam is the handle to the window being activated. If the low-order word of wParam is WA_ACTIVE or WA_CLICKACTIVE, lParam is the handle to the window being deactivated. This handle can be NULL.
dbger 2008-05-04
  • 打赏
  • 举报
回复
个人觉得两次截获消息的窗口句柄应该不是一个。

15,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧