【问题标题】:How to close tab in CMFCTabCtrl如何关闭 CMFCTabCtrl 中的选项卡
【发布时间】:2013-05-09 11:30:36
【问题描述】:

我在我的 MFC 应用程序中使用了 CMFCTabCtrl,并且我启用了活动的选项卡关闭按钮。

m_TabControl.EnableActiveTabCloseButton();

但是当我点击关闭按钮时,标签并没有关闭。如何正确关闭标签?..

谢谢。

【问题讨论】:

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


    【解决方案1】:

    当您单击关闭按钮时,WM_CLOSE 消息会发送到初始化期间在 AddTab 中使用的窗口。

    因此,在那个子窗口中,添加一个WM_CLOSE 消息处理程序并执行以下操作:

    void CMyTabWindow::OnClose()
    {
        // nb - must be created with the tab ctrl as parent
        CMFCTabCtrl *pTab = static_cast<CMFCTabCtrl*>(GetParent());
        pTab->RemoveTab(pTab->GetActiveTab());
    }
    

    【讨论】:

    • @Zeus - 我的荣幸 - 在我的测试中,看起来一切都被正确破坏了,但最好还是仔细检查一下。
    • 我有问题。动态添加和删除选项卡时,我将添加的选项卡对话框保存在 vector 中。但是如何从向量中删除关闭的选项卡对话框。有什么建议吗??..
    • @Zeus - 我会将CMyDialog* 存储在std::set 中,然后您可以按值将inserterase 存储起来,这样更容易。
    【解决方案2】:

    尝试在您的 CTabCtrl 上使用 DeleteItem(index)。这将从您的选项卡控件中删除该选项卡。

    【讨论】:

      猜你喜欢
      • 2013-07-18
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多