-
ModifyMenu
鎖定
ModifyMenu,該參數修改已存在的菜單項,並指定菜單項的內容、外觀和性能。
- 中文名
- ModifyMenu
- 函數功能
- 該參數修改已存在的菜單項
- 函數原型
- BOOL ModifyMenu
- hMnu
- 將被修改的菜單的句柄。
ModifyMenu函數原型
BOOL ModifyMenu(HMENU hMnu,UINT uPosition,UINT uFlags,UINT uIDNewltem,LPCTSTR IpNewltem);
ModifyMenu參數
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裏。
備註:如果函數ModifyMenu替換了打開下拉式菜單或子菜單的菜單項,則函數銷燬舊的下拉式菜單或子菜單,並釋放它們佔用的內存。
為了使鍵盤加速鍵能控制位圖或自繪製的菜單項,菜單的擁有者必須處理WM_MENUCHAR消息。參見自繪製菜單和WM_MENUCHAR消息。
一旦菜單被修改,無論它是否在顯示窗口裏,應用程序必須調用函數DrawMenuBar。要修改已存在菜單項的屬性,使用函數CheckMenultem和EnableMenultem更快。
ModifyMenu例子
CMenu* pSysMenu=GetSystemMenu( FALSE );
/* 禁止:移動菜單*/
pSysMenu ->ModifyMenu(SC_MOVE, MF_BYCOMMAND | MF_GRAYED, -10, "移動");
/* 要改回來時:*/
// pSysMenu ->ModifyMenu(-10, MF_BYCOMMAND | MF_GRAYED, SC_MOVE, "移動");
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:8次歷史版本
- 最近更新: 费德白客