如何在MFC多文档项目中更改office标签的背景色?

时间:2015-06-16 04:08:13

标签: c++ mfc

  1. 使用Vistual Studio 2012或更高版本
  2. 创建MFC项目
  3. 在向导中,设置为多文档项目
  4. 设置为Office样式
  5. 运行它。
  6. 点击新按钮创建一些空文档。
  7. 现在我想知道如何在这些空文档中更改标签的标题背景颜色?

2 个答案:

答案 0 :(得分:0)

您可以在MainFrm.cpp中禁用自动颜色

int CMainFrame::OnCreate(...)
{
    //...
    mdiTabParams.m_bAutoColor = FALSE; // set to FALSE to disable auto-coloring of MDI tabs
}

也许你已经知道了!将标签的背景颜色更改为特定的颜色可能非常棘手,因为它全部与所选主题相关联。但你可以这样做,例如通过以下方法:

ON_REGISTERED_MESSAGE(AFX_WM_CHANGING_ACTIVE_TAB, &CMainFrame::OnAfxWmChangingActiveTab)

LRESULT CMainFrame::OnAfxWmChangingActiveTab(WPARAM wParam, LPARAM lParam)
{
    CMFCTabCtrl* tab = (CMFCTabCtrl*)lParam;
    if (tab)
        tab->SetTabBkColor(wParam,RGB(255,0,0));
    return 0;
}

答案 1 :(得分:0)

您还可以通过以下代码禁用标签颜色:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if(-1 == CMDIFrameWndEx::OnCreate(lpCreateStruct))
        return -1;
....
    CMFCTabCtrl& MFCTabCtrl = GetMDITabs();
    MFCTabCtrl.EnableAutoColor(FALSE);
....