首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WM_DESTROY,WM_CLOSE绕过IMessageFilter

WM_DESTROY,WM_CLOSE绕过IMessageFilter
EN

Stack Overflow用户
提问于 2009-03-24 12:52:55
回答 1查看 1.1K关注 0票数 1

下面是我的邮件过滤器:

代码语言:javascript
复制
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)后,我没有收到任何发送的消息。为什么会这样呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-03-24 19:11:49

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

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/677236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档