【发布时间】:2013-05-09 11:30:36
【问题描述】:
我在我的 MFC 应用程序中使用了 CMFCTabCtrl,并且我启用了活动的选项卡关闭按钮。
m_TabControl.EnableActiveTabCloseButton();
但是当我点击关闭按钮时,标签并没有关闭。如何正确关闭标签?..
谢谢。
【问题讨论】:
标签: visual-studio-2008 visual-c++ mfc
我在我的 MFC 应用程序中使用了 CMFCTabCtrl,并且我启用了活动的选项卡关闭按钮。
m_TabControl.EnableActiveTabCloseButton();
但是当我点击关闭按钮时,标签并没有关闭。如何正确关闭标签?..
谢谢。
【问题讨论】:
标签: visual-studio-2008 visual-c++ mfc
当您单击关闭按钮时,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());
}
【讨论】:
CMyDialog* 存储在std::set 中,然后您可以按值将insert 或erase 存储起来,这样更容易。
尝试在您的 CTabCtrl 上使用 DeleteItem(index)。这将从您的选项卡控件中删除该选项卡。
【讨论】: