如何关闭 CMFCTabCtrl 中的选项卡
Posted
技术标签:
【中文标题】如何关闭 CMFCTabCtrl 中的选项卡【英文标题】:How to close tab in CMFCTabCtrl 【发布时间】:2013-05-09 11:30:36 【问题描述】:我在我的 MFC 应用程序中使用了 CMFCTabCtrl,并且我启用了活动的选项卡关闭按钮。
m_TabControl.EnableActiveTabCloseButton();
但是当我点击关闭按钮时,标签并没有关闭。如何正确关闭标签?..
谢谢。
【问题讨论】:
【参考方案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 - 我的荣幸 - 在我的测试中,看起来一切都被正确破坏了,但最好还是仔细检查一下。 我有问题。动态添加和删除选项卡时,我将添加的选项卡对话框保存在 vectorCMyDialog*
存储在std::set
中,然后您可以按值将insert
或erase
存储起来,这样更容易。【参考方案2】:
尝试在您的 CTabCtrl 上使用 DeleteItem(index)。这将从您的选项卡控件中删除该选项卡。
【讨论】:
以上是关于如何关闭 CMFCTabCtrl 中的选项卡的主要内容,如果未能解决你的问题,请参考以下文章