函式功能:該函式使指定的選單項有效、無效或變灰。
函式原型:BOOL EnableMenutem(HMENU hMenu,UINT ulDEnablttem,UINT uEnable;
參數
hMenu:選單句柄。
ulDEnableltem:指定將使其有效、無效或變灰的選單項,按參數uEnable確定的含義。此
參數可指定選單條、選單或子選單里的選單項。
uEnable:指定控制參數uIDEnableltem如何解釋的標誌,指示選單項有效、無效或者變灰。
此參數必須是MF_BYCOMMAND或MF_BYPOSITION,MF_ENABLED和MF_DISABLE或MF_GRAYED的
組合。
MF_BYCOMMAND:表明參數uIDEnableltem給出了選單項的標識符。如果MF_BYCOMMAND和
MF_POSITION都沒被指定,則MF_BYCOMMAND為預設標誌。
MF_BYPOSITION:表明參數uIDEnableltem給出了選單項的以零為基準的相對位置。
MF_DISABLED:表明選單項無效,但沒變灰,因此不能被選擇。
MF_ENABLED:表明選單項有效,並從變灰的狀態恢復,因此可被選擇。
MF_GRAYED:表明選單項無效並且變灰,因此不能被選擇。
返回值:返回值指定選單項的前一個狀態(MF_DISABLED,MF_ENABLED或MF_GRAYED)。如果
此選單項不存在,則返回值是OXFFFFFFFF。
備註:一個應用程式必須用MF_BYPOSITION來指定正確的選單句柄。如果選單條的選單句柄
被指定,頂層選單項(選單條上的選單項)將受到影響。若要根據位置來設定下拉選單中的
選單項或子選單的狀態,應用程式指定下拉選單或子選單的句柄。
當應用程式指定MF_BYCOMMAND標誌時,系統在由指定選單句柄標識的選單里選取那些
打開了子選單的選單項。因此除非要複製選單項,指定選單條的句柄就足夠了。
函式InsertMenu,InsertMenultem,LoadMenulndirect,ModifyMenu和SetMenultemlnfo
也可設定選單項的狀態(有效、無效或變灰)。
Windows CE:Windows CE不支持參數uEnable取MF_DISABLED標誌。
如果沒有變灰,選單項不能無效。要使選單項無效,用MF_RAYED標誌。
速查:Windows NT:3.1及以上版本;Windows:95的及以上版本;Windows CE:1.0及以上
版本;頭檔案:winuser.h;輸入庫:user32.lib。
2.13.8 GetMenu
函式功能:該函式取得分配給指定視窗的選單的句柄。
函式原型:HMENU GetMenu(HWND hWnd);
參數:
hWnd:其選單句柄被取得的視窗的句柄。
返回值:返回值是選單的句柄。如果給定的視窗沒有選單,則返回NULL。如果視窗是一個
子視窗,返回值無定義。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;頭文
件:winuser.h;輸入庫:user32.lib。
2.13.9 GetMenuDefaultltem
函式功能:該函式確定指定選單上的預設項。
函式原型:UINT GetMenuDefaultltem(HMENY hMenu,UINT fByPos,UINT gmdiFlags);
參數:
hMenu:獲取預設項的選單的句柄。
fByPos:用於確定是取得選單項的標識符還是位置的值。如果此參數值為FALSE,返回標識
符,否則返回位置。
gmdiFlags:指定函式如何查找選單項。此參數可取靈或多個下列值:
GMDI_GOINTOPOPUPS:如果預設項打開了子選單,此函式在相應的子選單里遞歸查找。如果
子選單沒有預設項,返回值表示打開了子選單的項。預設情況下,函式返回指定選單的第一
個預設項,不管它是否打開了一個子選單。
GMDI_USEDISABLED:指定函式返回一個預設項,即使該項無效。預設情況下,函式跳過無效
或變灰的項。
返回值:如果函式調用成功,返回值是選單項的標識符或位置;如果函式調用失敗,返回值
是C1。若想獲得更多的錯誤信息,請調用GetLastError函式。
速查:Windows:4.0及以上版本;Windows:95及以上版本:Windows CE:不支持;頭檔案:
winuser.h;輸入庫:user32.lib。