去掉MFC的MDI程序中的浮动工具条上标题栏中的“关闭”按钮

来源:互联网 发布:中国根域名服务器在哪 编辑:程序博客网 时间:2024/05/02 02:16

去掉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);
  
 }

 

效果如图: