【问题标题】:How to customize MFC MDI CMFCTabCtrl如何自定义 MFC MDI CMFCTabCtrl
【发布时间】:2018-01-17 01:07:59
【问题描述】:

我已经基于 MFC 框架创建了 MDI 应用程序,但是 CMFCTabCtrl 的样式不能满足我们的要求。我想更改标签高度、颜色并添加一些图片和按钮。

但我不知道怎么做。有什么例子或文章可以帮助我吗?

【问题讨论】:

    标签: c++ windows visual-studio-2008 mfc mdi


    【解决方案1】:

    您可以轻松自定义 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 标准由专业设计师开发,并经过众多用户的测试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 2013-10-12
    • 2013-04-18
    • 1970-01-01
    • 2011-07-06
    • 2023-04-09
    • 1970-01-01
    相关资源
    最近更新 更多