4.3 全局主题样式
使用全局主题样式,可以保持程序界面的一致性。
InitInstance()
中启用一种主题,例如:SetVisualTheme(BCGP_VISUAL_THEME_VS_2013_BLUE);
InitInstance()
初始化一些全局的数据。//修改Bth背景色为白色 globalData.brBtnFace.DeleteObject(); globalData.brBtnFace.CreateSolidBrush(RGB(255,255,255)); CBCGPMessageBox::m_bUseNativeCaption = FALSE; //设置BCGPMessageBox样式 CBCGPMessageBox::m_bUseNativeControls = FALSE;
- 各个窗口、控件使用BCG的类,或者继承自BCG,并且设置VisualManagerStyle标志,不同的类方法可能不一样。
EnableVisualManagerStyle(TRUE, TRUE); m_wndList.m_bVisualManagerStyle = TRUE;//控件直接设置
- 窗口绘制,尽量用全局变量。例如:
HBRUSH CDlgTest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CBCGPPropertySheet::OnCtlColor(pDC, pWnd, nCtlColor); switch (nCtlColor) { case CTLCOLOR_BTN: case CTLCOLOR_DLG: case CTLCOLOR_STATIC: { hbr = globalData.brBtnFace; break; } default: break; } return hbr; }