GetSystemMenu

GetSystemMenu

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

函式原型

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

參數

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; 只有一個參數。

相關詞條

相關搜尋

熱門詞條

聯絡我們