如何自定义MFC MDI CMFCTabCtrl
问题描述:
我已经创建了基于MFC框架的MDI应用程序,但CMFCTabCtrl
的样式不符合我们的要求。我想改变标签高度,颜色和添加一些图片和按钮。如何自定义MFC MDI CMFCTabCtrl
但我不知道如何。有任何例子或文章能帮助我吗?
答
您可以轻松定制您的MFC选项卡控件。有很多选择。
要启用关闭按钮,你只需要调用m_TabControl.EnableActiveTabCloseButton();
确保在你的子窗口中添加WM_CLOSE
消息处理程序:
void CMyTabWindow::OnClose()
{
CMFCTabCtrl *pTab = static_cast<CMFCTabCtrl*>(GetParent());
pTab->RemoveTab(pTab->GetActiveTab());
}
可以使用SetTabBkColor()
或SetAutoColors()
自定义颜色。
您还可以使用SetImageList()
设置图像。
高度还可以使用SetTabsHeight()
来定制。
感谢您的回复。我发现这些方法基于MDI应用程序框架风格。有没有办法自定义没有所有样式的选项卡控件?我想要自定义选项卡控件,如通过OnDraw方法中的GDI绘制一些矩形。但是我不能在我的子框架类中覆盖WM_DRAWITEM消息。我已经创建了我自己的选项卡控件,它是从标准选项卡控件类派生而来的。并把它放在MDI客户端上面。响应WM_LBUTTONDOWN消息来激活视图。但它不是我想要使用的方法。 –
如果您想要完整的所有者绘制解决方案,您需要重新实施整个控制。而且你还必须创建自己的MDI框架。我不会推荐这么做。 MS UI标准由专业设计人员开发并经过许多用户的测试。 –