複製鏈接
請複製以下鏈接發送給好友

GetSystemMenu

鎖定
GetSystemMenu,函數名。該函數允許應用程序為複製或修改而訪問窗口菜單(系統菜單或控制菜單)。
系統菜單是指我們點擊窗體左上角的小圖標時所彈出的菜單,其中好象有“恢復”.“移動”.“最大化”.“最小化”.“關閉”這麼幾個按鈕.
這個菜單用普通的方法是不能編輯與改變的,但是我們可以通過api函數getsystemmenu來得到它的句柄,然後通過菜單相關的api函數就能改變它了。
中文名
GetSystemMenu
外文名
GetSystemMenu
函數功能
允許應用程序為複製或修改而訪問
函數原型
GetSystemMenu(BOOL bRevert)
參    數
hWnd

目錄

GetSystemMenu函數原型

HMENU GetSystemMenu(HWND hWnd,BOOL bRevert);或者,HMENU GetSystemMenu(BOOL bRevert);

GetSystemMenu參數

hWnd:擁有窗口菜單拷貝的窗口的句柄。
bRevert:標誌位,指定將執行的操作。
如果此參數為FALSE,GetSystemMenu返回當前使用窗口菜單的拷貝的句柄。該拷貝初始時與窗口菜單相同,但可以被修改。
如果此參數為TRUE,GetSystemMenu重置窗口菜單到缺省狀態。如果存在先前的窗口菜單,將被銷燬。
返回值:如果參數bRevert為FALSE,返回值是窗口菜單的拷貝的句柄:如果參數bRevert為TRUE,返回值是NULL。
備註:任何沒有用GetSystemMenu函數來生成自己的窗口菜單拷貝的窗口將接受標準窗口菜單。
窗口菜單最初包含的菜單項有多種標識符值,如SC_CLOSE,SC_MOVE和SC_SIZE。
窗口菜單上的菜單項發送WM_SYSCOMMAND消息。
所有預定義的窗口菜單項的標識符數大於0xF000。如果一個應用程序增加命令到窗口菜單,應該使用小於0xF000的標識符數。
系統根據狀態自動變灰標準窗口菜單上的菜單項。應用程序通過響應在任何某單顯示之前發送的WM_INITMENU消息來實現選取和變灰。
Windows CE環境下,不支持系統菜單,但GetSyemMenu以宏的方式實現,以保持和已存在代碼的兼容性。可以使用該宏的返回菜單句柄使關閉框無效,與在Windows桌面平台上一樣。Windows CE下的返回值沒有其他用處。參數bRevert無用。
用下面的代碼使關閉按鈕無效:
EnableMenultem(GetSystemMenu(hwnd,FALSE),SC_CLOSE,MF_BYCOMMAND I MF_GRAYED);
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;頭文件:winuser.h;輸入庫:user32.lib。
注意:以上介紹的是API函數,在MFC中作為class CWnd的成員函數聲明為 CMenu* GetSystemMenu(BOOL bRevert) const; 只有一個參數。
[1] 
參考資料