gpt4 book ai didi

.net - WM_DESTROY、WM_CLOSE绕过IMessageFilter

转载 作者:可可西里 更新时间:2023-11-01 11:10:59 30 4
gpt4 key购买 nike

下面是我的消息过滤器:

bool MyFilter::PreFilterMessage(Message %m){
switch(m.Msg){
case WM_CLOSE:
case WM_DESTROY:
case WM_NCDESTROY:
case WM_QUIT:
Debug::WriteLine(L"Gone!");
break;
case WM_MOUSEMOVE:
Debug::WriteLine(L"A mouse! Catch! Catch!!! CATCH!!");
break;
}
return false;
}

我确认我可以毫无问题地过滤大多数消息。但是,我没有收到单击窗口关闭按钮后发送的任何消息(WM_CLOSEWM_DESTROYWM_NCDESTROYWM_QUIT)。这是为什么?

最佳答案

IMessageFilter.PreFilterMessage() 仅针对消息队列中的消息调用。 WM_CLOSE 等消息通过 SendMessage() 直接发送到 WndProc(),它们绕过队列。您也不会收到 WM_ACTIVATE、WM_GETTEXT 等消息。输入事件,仅此而已。

关于.net - WM_DESTROY、WM_CLOSE绕过IMessageFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/677236/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com