去掉MFC的MDI程序中的浮动工具条上标题栏中的“关闭”按钮:
由于工具栏也是一个对话框窗口,我们可以利用 CControlBar 基类的m_pDockBar成员来调用GetParent()以获取工具条的父窗口。从而改
变父窗口的式样——屏蔽系统菜单——来达到我们的目的——去掉“关闭”按钮。(摘自http://www.vckbase.com/vckbase/default.aspx)
(1)如果想在视图CMFC_frameView::OnLButtonDown()中调用(在CView中响应左键):
CWnd* pToolBarDlg;//父窗口(即包含工具栏的窗口,是我们想得到的) pToolBarDlg= ( ( CWnd* ) ((CMainFrame*) AfxGetMainWnd())->m_wndToolBar.m_pDockBar)
->GetParent();//m_wndToolBar为CMainFrame中的工具栏 if( pToolBarDlg->IsKindOf(RUNTIME_CLASS(CMiniFrameWnd))) { pToolBarDlg->ModifyStyle(WS_SYSMENU, 0);//去掉"关闭"按钮 pToolBarDlg->SetWindowTextW( _T("donow"));//可设置标题 }
(3.2)如果想在主窗口CMainFrame::OnCreate()中初始化时调用,这样最开始就去掉了"关闭"按钮:
//前面是m_wndToolBar.CreateEx()和m_wndToolBar.LoadToolBar(IDR_MAINFRAME)CWnd* pToolBarDlg; pToolBarDlg= ( CWnd* ) (m_wndToolBar.m_pDockBar); pToolBarDlg= pToolBarDlg->GetParent(); if( pToolBarDlg->IsKindOf(RUNTIME_CLASS(CMiniFrameWnd))) { pToolBarDlg->ModifyStyle(WS_SYSMENU, 0); }
效果如图: