搜罗了一下,还没有发现完整的描述资料,这里简单描述一下自己摸索的思路。
要改变Tab Control的颜色,首先了解Tab Control的组成:Tab页头,Tab页和背景。所以需要同时改变这三个部分颜色,才能达到目的。
关键词: MFC, C/C++, GUI
1)改变Tab页头的颜色
这部分可参考MSDN的资料,这里不再重复。
http://support.microsoft.com/kb/179909/en-us
How To Change the Background Color of a Tab Control
2)改变Tab页的颜色
这里其实就是改变Tan页对应的对话框的颜色。网上有很多资料介绍,就是把Tab页面对应的对话框类重载OnCtlColor()函数,在函数中返回一个对应颜色的刷子。例如:
HBRUSH CTab1Dialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
return m_hbr;
}
3)改变Tab Control背景的颜色(这个部分花了我好几个小时,自己MFC不熟)
需要自定义一个CMyTabCtrl类,继承CTabCtrl,映射OnEraseBkgnd()函数,在函数中填充客户区
// calc total tab width
CRect rClient
GetClientRect(rClient);
pDC->FillSolidRect(&rClient,RGB(218,128,128));
这部分可以参考一下:
http://www.codeproject.com/KB/tabs/customtab.aspx
Ownerdraw Tab Controls - Borders and All