如何在MFC中创建非交互式窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在MFC中创建非交互式窗口相关的知识,希望对你有一定的参考价值。

在我的应用程序中,我有一个窗口,我弹出一些小消息(想象类似于工具提示)。此窗口使用分层属性绘制alpha背景等。

如果我有几个窗口同时打开,我用鼠标点击一个,当它们消失时,它们会导致我的应用程序失去焦点(它将焦点切换到当前窗口后面的应用程序)。

如何在窗口中停止任何交互?

答案

它的工作原理是因为OnSetFocus(就像许多On *方法一样)让你有机会在实际发生之前抢先行动。焦点永远不会切换到您的非交互式窗口。

另一答案

在没有运气的情况下玩WM_NCACTIVATE消息后,我覆盖了WM_SETFOCUS消息:

void CMyWindow::OnSetFocus(CWnd* pOldWnd)
{
    if (pOldWnd != NULL)
    {
        pOldWnd->SetFocus();
    }
}

这似乎可以解决问题。不知道为什么它有效!欢迎就该问题发表评论。

以上是关于如何在MFC中创建非交互式窗口的主要内容,如果未能解决你的问题,请参考以下文章

如何在Visual C ++中创建非托管Windows GUI?

如何在 Create Table 中创建非聚集索引?

如何在 Ejabberd 中创建非匿名房间 [关闭]

如何在 .NET 中创建非 OwnerDraw 按钮?

如何在 Visual Studio 2019 C++ 中创建非虚拟文件夹

如何在mfc项目中创建新窗口