首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CPropertySheet和CPropertyPages以白色显示

CPropertySheet和CPropertyPages以白色显示
EN

Stack Overflow用户
提问于 2010-04-27 16:14:53
回答 3查看 2.4K关注 0票数 0

我已经创建了一个简单的propertySheet(CPropertySheet)和两个CPropertyPage派生类。

在运行应用程序时,ProperySheet、页面和选项卡显示为白色。

我希望它们是正常的窗口对话框颜色。

有没有提示让属性表,页面背景像其他普通的MFC对话框一样出现?

我使用没有.NET CLR的Visual Studio2008MFC。

EN

回答 3

Stack Overflow用户

发布于 2010-04-27 17:52:45

你说的“系统颜色”是什么意思?灰色(COLOR_BTNFACE)?您使用的是什么操作系统?如果是XP,属性页应该是COLOR_BTNFACE,我不知道正确的颜色是什么。如果您不做任何特殊操作,它们将以系统默认颜色显示。

票数 1
EN

Stack Overflow用户

发布于 2011-03-30 10:53:35

这是一个MFC错误。使用spy++监控你的应用程序,你会发现你的应用程序收到了很多WM_GETDLGCODE消息,似乎进入了死循环。是的,这就是问题所在。

微软已经发布了关于这个问题的PRB。请浏览:PRB: Child CPropertySheet Hangs If Focus Is Switched

简而言之,在您的PropertySheet中添加WS_EX_CONTROLPARENT样式。

代码语言:javascript
复制
   BOOL CMySheet::OnInitDialog()
   {
             ModifyStyleEx (0, WS_EX_CONTROLPARENT);
             return CPropertySheet::OnInitDialog();
   }
票数 0
EN

Stack Overflow用户

发布于 2015-02-18 00:19:48

处理WM_CTLCOLORDLG消息。

代码语言:javascript
复制
case WM_CTLCOLORDLG:
   {
      HDC hdc = (HDC)wParam;
      COLORREF color = GetSysColor(COLOR_3DFACE);
      SetBkColor(hdc, color);
      static HBRUSH brush = CreateSolidBrush(color);
      return (BOOL)brush;
   }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2719666

复制
相关文章

相似问题

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