我已经创建了一个简单的propertySheet(CPropertySheet)和两个CPropertyPage派生类。
在运行应用程序时,ProperySheet、页面和选项卡显示为白色。
我希望它们是正常的窗口对话框颜色。
有没有提示让属性表,页面背景像其他普通的MFC对话框一样出现?
我使用没有.NET CLR的Visual Studio2008MFC。
发布于 2010-04-27 17:52:45
你说的“系统颜色”是什么意思?灰色(COLOR_BTNFACE)?您使用的是什么操作系统?如果是XP,属性页应该是COLOR_BTNFACE,我不知道正确的颜色是什么。如果您不做任何特殊操作,它们将以系统默认颜色显示。
发布于 2011-03-30 10:53:35
这是一个MFC错误。使用spy++监控你的应用程序,你会发现你的应用程序收到了很多WM_GETDLGCODE消息,似乎进入了死循环。是的,这就是问题所在。
微软已经发布了关于这个问题的PRB。请浏览:PRB: Child CPropertySheet Hangs If Focus Is Switched
简而言之,在您的PropertySheet中添加WS_EX_CONTROLPARENT样式。
BOOL CMySheet::OnInitDialog()
{
ModifyStyleEx (0, WS_EX_CONTROLPARENT);
return CPropertySheet::OnInitDialog();
}发布于 2015-02-18 00:19:48
处理WM_CTLCOLORDLG消息。
case WM_CTLCOLORDLG:
{
HDC hdc = (HDC)wParam;
COLORREF color = GetSysColor(COLOR_3DFACE);
SetBkColor(hdc, color);
static HBRUSH brush = CreateSolidBrush(color);
return (BOOL)brush;
}https://stackoverflow.com/questions/2719666
复制相似问题