当用户单击非活动顶级窗口或非活动顶级窗口的子窗口时,Windows会将WM_MOUSEACTIVATE消息(等)发送到顶级或子窗口。在向窗口发布WM_NCHITTEST消息之后发送此消息,但在发布按钮消息之前发送此消息。当WM_MOUSEACTIVATE传递给DefWindowProc功能时,Windows将激活顶级窗口,然后将按钮消息发送到顶层或子窗口。
通过处理WM_MOUSEACTIVATE,窗口可以控制顶层窗口是否由于鼠标点击而变为活动窗口,以及被点击的窗口是否接收到随后的按钮消息。它在处理WM_MOUSEACTIVATE后返回以下值之一。
值 | 含义 |
MA_ACTIVATE | 激活窗口,不会丢弃鼠标信息。 |
MA_NOACTIVATE | 不激活窗口,不会丢弃鼠标消息。 |
MA_ACTIVATEANDEAT | 激活窗口并丢弃鼠标消息。 |
MA_NOACTIVATEANDEAT | 不激活窗口,但丢弃鼠标消息。 |