如何抓住CTabView关闭按钮按下
How to catch CTabView close button pressed?
我正在用 MFC 编写一个带有选项卡的应用程序。我正在用我自己的课程扩展CTabView
课程。
我想在关闭活动选项卡时捕获事件,并将其从 TabView 中删除。
消息WM_LBUTTONUP
在这里永远不会处理 - 它没有在任何子类中处理 - 我做错了什么?
关闭活动选项卡时,在哪里可以捕获事件?
IMPLEMENT_DYNCREATE(CBottomTabView, CTabView)
BEGIN_MESSAGE_MAP(CBottomTabView, CTabView)
ON_WM_CREATE()
ON_WM_LBUTTONUP()
END_MESSAGE_MAP()
CBottomTabView::CBottomTabView()
{
}
CBottomTabView::~CBottomTabView()
{
}
BOOL CBottomTabView::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CTabView::PreCreateWindow(cs))
return FALSE;
cs.dwExStyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER;
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS,
::LoadCursor(NULL, IDC_ARROW), reinterpret_cast<HBRUSH>(COLOR_WINDOW+1), NULL);
return TRUE;
}
int CBottomTabView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CTabView::OnCreate(lpCreateStruct) == -1)
return -1;
GetTabControl().SetLocation(CMFCBaseTabCtrl::LOCATION_BOTTOM);
GetTabControl().ModifyTabStyle(CMFCTabCtrl::STYLE_3D_ONENOTE);
GetTabControl().EnableTabDocumentsMenu(TRUE);
GetTabControl().EnableActiveTabCloseButton(TRUE);
GetTabControl().EnableTabSwap(TRUE);
AddView(RUNTIME_CLASS(CLogView),_T("Log"));
AddView(RUNTIME_CLASS(CLogView),_T("Log2"));
AddView(RUNTIME_CLASS(CLogView),_T("Log3"));
return 0;
}
// This method is never handled!!!
void CBottomTabView::OnLButtonUp(UINT nFlags, CPoint point)
{
int nTab = GetTabControl().GetTabFromPoint(point);
GetTabControl().SetActiveTab(nTab);
if (GetTabControl().IsTabCloseButtonPressed())
{
RemoveView(nTab);
}
else
{
CTabView::OnLButtonUp(nFlags, point);
}
}
// This metod is handled only when changing the tab
void CBottomTabView::OnActivateView(CView* view)
{
CTabView::OnActivateView(view);
}
这是因为您在消息映射中请求了 OnLButtonDown 事件,而不是您正在响应的 OnLButtonUp 事件。更改消息映射或更改函数。
相关文章:
- 可能的Qt5错误:调用setFixedSize()禁用主窗口的关闭按钮(在Win7下)
- 如何隐藏最大化和最小化按钮并在qml应用程序窗口中显示关闭按钮?
- Arduino上的打开和关闭按钮
- 如何抓住CTabView关闭按钮按下
- 在关闭按钮上设置未保存的文件标记
- 在 WTL 中使向导的"关闭"按钮灰显
- 禁用 Win32 中的最小化、最大化、关闭按钮
- QDialog 打开时允许 QMainWindow 上的关闭按钮
- 禁用QDialogs默认关闭按钮(左上角"cross button")?
- 如何在不影响 ALT+F4 或在任务栏中关闭窗口的情况下重新调整窗口关闭按钮的用途?
- 单击对话框关闭按钮时,正确中止线程
- 自定义最小-最大关闭按钮实现
- 如何处理笔记本上的电源关闭按钮
- 如何执行程序清理时,用户按下关闭按钮在c++控制台应用程序
- 启用win32消息框中的关闭按钮
- WinAPI:创建可调整大小的窗口,没有标题栏,但有最小化/最大化/关闭按钮(如Firefox/Chrome/Opera
- 使用关闭按钮关闭Opencv窗口
- 为什么快板自动处理最小化按钮,而不是关闭按钮
- 我似乎无法使用Qt::WindowFlags添加关闭按钮
- 如何获取标题栏窗口控件的 RECT(最大化、最小化、关闭按钮)?我尝试制作自定义颜色标题栏