我的对话框上有一个CTabCtrl
,上面有几个标签 ( CStatic
)。问题是,选项卡控件有白色背景,标签有灰色背景。我知道为什么 - 标签的父级实际上是对话框,而不是选项卡控件。但是,我应该能够使用CWnd::OnCtlColor
为标签提供自定义背景画笔:
HBRUSH MyDialog::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
HBRUSH hBrush = __super::OnCtlColor(pDC, pWnd, nCtlColor);
const int dialogId = pWnd->GetDlgCtrlID();
if (dialogId == IDC_MY_CONTROL)
{
pDC->SetBkMode(TRANSPARENT);
hBrush = m_nullBrush;
}
return hBrush;
}
在这里,我使用m_nullBrush
提供了一个画笔来绘制标签的背景,唯一的麻烦是,我不知道如何获取选项卡的背景颜色,而是将其硬编码为m_nullBrush.CreateStockObject(WHITE_BRUSH);
.
即使我将标签重新设置为标签控件的父级,它们仍然以灰色背景结束(即使标签控件具有白色背景)。
如何检索 a 的背景颜色CTabCtrl
?