ModifyMenu

ModifyMenu,該參數修改已存在的選單項,並指定選單項的內容、外觀和性能。

基本介紹

  • 中文名:ModifyMenu
  • 函式功能:該參數修改已存在的選單項
  • 函式原型:BOOL ModifyMenu
  • hMnu::將被修改的選單的句柄。
函式原型,參數,例子,

函式原型

BOOL ModifyMenu(HMENU hMnu,UINT uPosition,UINT uFlags,UINT uIDNewltem,LPCTSTR IpNewltem);

參數

hMnu:將被修改的選單的句柄。
uPosition:指定將被修改的選單項,其含義由參數UFlags決定。
UFlags:指定控制參數uPosition的解釋的標誌、選單項的內容、外觀和性能。此參數必須為下列值之一和列於備註里的一個值的組合。
MF_BYCOMMAND:表示uPostion給出選單項的標識符。如果MF_BYCOMMAND和MF_BYPOSITION都沒被指定則MF_BYCOMMAND為預設的標誌。
MF_BYPOSITION:表示uPosition給出選單項基於零的相對位置。
UIDNewltem:指定被修改選單項的標識符,或者當參數uFlags設定為MF_POPUP時,指定下拉式選單或子選單的句柄。
lpNewltem:指定被修改選單項的內容。其含義依賴於參數UFlags是否包含標誌MF_BITMAP,MF_OWNERDRAW或MF_STRING。如下所示:
MF_BITMAP:含有點陣圖句柄;MF_STRING:以`\0’結束的字元串的指針(預設)。
MF_OWNERDRAW:含有被應用程式套用的32位值,可以保留與選單項有關的附加數據。當選單被創建或其外觀被修改時,此值在訊息WM_MEASURE或WM_DRAWITEM的參數lparam指向的結構中,成員itemData里。
返回值:如果函式調用成功,返回值非零;如果函式調用失敗,返回值為零。若想獲得更多的錯誤信息,請調用GetLastError函式。
備註:如果函式ModifyMenu替換了打開下拉式選單或子選單的選單項,則函式銷毀舊的下拉式選單或子選單,並釋放它們占用的記憶體。
為了使鍵盤加速鍵能控制點陣圖或自繪製的選單項,選單的擁有者必須處理WM_MENUCHAR訊息。參見自繪製選單和WM_MENUCHAR訊息。
一旦選單被修改,無論它是否在顯示視窗里,應用程式必須調用函式DrawMenuBar。要修改已存在選單項的屬性,使用函式CheckMenultemEnableMenultem更快。

例子

CMenu* pSysMenu=GetSystemMenu( FALSE );
/* 禁止:移動選單*/
pSysMenu ->ModifyMenu(SC_MOVE, MF_BYCOMMAND | MF_GRAYED, -10, "移動");
/* 要改回來時:*/
// pSysMenu ->ModifyMenu(-10, MF_BYCOMMAND | MF_GRAYED, SC_MOVE, "移動");

相關詞條

熱門詞條

聯絡我們