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

    技术2022-05-19  28

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

     

    效果如图:


    最新回复(0)