程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> VC++ >> 如何禁止對話框關閉按鈕和浮動工具條上的系統菜單

如何禁止對話框關閉按鈕和浮動工具條上的系統菜單

編輯:VC++

作者:Future Studio.徐景周
版權所有:徐景周
轉載請聯系作者

1、禁止對話框中的關閉按鈕有二種方法。

第一種方法,用ModiftMenu()涵數來實現:

CMenu* pMenu = this->GetSystemMenu(FALSE);
pMenu->ModifyMenu(SC_CLOSE,MF_BYCOMMAND | MF_GRAYED );

第二種方法,用EnableMenuItem()涵數來實現:

CMenu* pMenu = this->GetSystemMenu(FALSE);
pMenu->EnableMenuItem( SC_CLOSE, MF_BYCOMMAND|MF_GRAYED);

2、禁止浮動工具條上的系統菜單。

  新建一個CToolBar的派生類CxxToolBar,在新類中的左鍵雙擊(CxxToolBar::OnLButtonDblClk(...))和左鍵單擊(CxxToolBar:: OnLButtonDown(...))涵數中分別加入下面代碼既可:

if (IsFloating()) //工具條正在浮動狀態中
{
CWnd* pMiniFrame;
CWnd* pDockBar;

pDockBar = GetParent();
pMiniFrame = pDockBar->GetParent();

//去除其上系統菜單
pMiniFrame->ModifyStyle(WS_SYSMENU, NULL);

//重繪工具條
pMiniFrame->ShowWindow(SW_HIDE);
pMiniFrame->ShowWindow(SW_SHOW);
}


3、禁止窗口最大化按鈕

  在PreCreateWindow()涵數中去掉WS_MAXIMIZEBOX風格顯示既可。

BOOL CxxFrameWnd::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~WS_MAXIMIZEBOX;
return CFrameWnd::PreCreateWindow(cs);
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved