VC ++(MFC)中MDI的应用栏颜色

时间:2017-10-02 03:40:46

标签: visual-c++ mfc

如何定义要应用的系统主题以匹配新样式并应用它。请找到实际和预期风格的附图。

MDI框架窗口颜色:

enter image description here

到目前为止,我尝试了以下方法,但没有产生预期的结果。

1:使用Windows API设置应用程序标题以下代码设置会话的应用程序标题栏的颜色。但是在Windows 8.1和10上使用主题设置等,它不会生效。

int aElement = COLOR_ACTIVECAPTION;
DWORD aOldColor;
DWORD aNewColor; 
aOldColor = GetSysColor(aElement);
aNewColor = RGB(0x04, 0x04, 0x04);
SetSysColors(1, &aElement, &aNewColor);

2:使用主题/ DWM API

如果Windows主题生效,则单独更改应用程序标题栏不会成功。试过了:

2-a:获取主题句柄,定义标题栏并在调用CMFCVisualManager::GetInstance()->OnDrawCaptionBarBorder()时使用标题栏

2-b:DwmSetWindowAttribute()用于设置禁用渲染政策。

3:使用CMFCVisualManager

定义CMFCCaptionBar并将其分配给CMFCVisualManager。这也没有得到所需的效果。

0 个答案:

没有答案