如何自定义MFC MDI CMFCTabCtrl

如何自定义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()来定制。

+0

感谢您的回复。我发现这些方法基于MDI应用程序框架风格。有没有办法自定义没有所有样式的选项卡控件?我想要自定义选项卡控件,如通过OnDraw方法中的GDI绘制一些矩形。但是我不能在我的子框架类中覆盖WM_DRAWITEM消息。我已经创建了我自己的选项卡控件,它是从标准选项卡控件类派生而来的。并把它放在MDI客户端上面。响应WM_LBUTTONDOWN消息来激活视图。但它不是我想要使用的方法。 –

+0

如果您想要完整的所有者绘制解决方案,您需要重新实施整个控制。而且你还必须创建自己的MDI框架。我不会推荐这么做。 MS UI标准由专业设计人员开发并经过许多用户的测试。 –