c00*_*0fd 3 c++ user-interface mfc windows-10 visual-studio-2017
我不确定为什么我会得到这个视觉神器?
以下是如何重现:
我正在使用Visual Studio 2017社区.创建一个新的C++ - > MFC项目:
然后指定"基于对话框":
然后构建为"Debug"x86应用程序并运行它.
所以我在Windows 10上运行它.
当这个基于对话框的过程具有焦点时,它看起来像我期望的那样:
但如果我将键盘焦点切换到其他应用程序(通过点击它),这个基于对话框的过程仍然保留其标题栏颜色:
我不确定这是否只是一个视觉故障的问题,或者是否有更深层次的窗口消息处理问题.我该如何纠正?(对于较旧的MFC项目,这不是问题.)
我设法复制你的问题并找到了一个快速解决方案.您需要将WM_ACTIVATE消息处理程序添加到主对话框中,注释掉基类OnActivate并将其修改为:
void CMFCApplication1Dlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
//CDialogEx::OnActivate(nState, pWndOther, bMinimized);
// TODO: Add your message handler code here
this->Default();
}
Run Code Online (Sandbox Code Playgroud)
需要CWnd :: Default调用以保持默认按钮的活动/非活动可视化.