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

InsertMenu

鎖定
InsertMenu,該函數插入一個新菜單項到菜單裏,並使菜單裏其他項下移。
中文名
InsertMenu
功    能
插入一個新菜單項到菜單裏
參    數
hMenu
函數原型
BOOL InsertMenu(HMENU hMenu,UINT uPosition,UINT uFlags,UINT uIDNewltem,LPCTSTR lpNewltem);
參數:
1. hMenu:將被修改的菜單的句柄。
2. uPosition:指定新菜單項將被插入其前面的菜單項,其含義由參數uFlagS決定。
3. uFlags:指定控制參數uPosition的解釋的標誌、新菜單項的內容、外觀和性能。此參數必須為下列值之一和列於備註裏的一個值的組合。
(1). MF_BYCOMMAND:表示uPosition給出菜單項的標識符。如果MF_BYCOMMAND和MF_BYPOSITION都沒被指定,則MF_BYCOMMAND為缺省的標誌。
(2). MF_BYPOSITION:表示uPosition給出新菜單項基於零的相對位置。如果uPosition為OxFFFFFFFF新菜單項追加於菜單的末尾。
4. uIDNewltem:指定新菜單項的標識符,或者當參數uFlags設置為MF_POPUP時,指定下拉式菜單或子菜單的句柄。
5. LpNewltem:指定新菜單項的內容。其含義依賴於參數UFlags是否包含標誌MF_BITMAP,MF_OWNERDRAW或MF_STRING。如下所示:
(1). MF_BITMAP:含有位圖句柄。MF_STRING:以`\0’結束的字符串的指針(缺省)。
(2). MF_OWNERDRAW:含有被應用程序應用的32位值,可以保留與菜單項有關的附加數據。當菜單被創建或其外觀被修改時,此值在消息WM_MEASURE或WM_DRAWITEM的參數IParam指向的結構中、成員itemData裏。
返回值:如果函數調用成功,返回值非零;如果函數調用失敗,返回值為零。若想獲得更多的錯誤信息,請調用GetLastError函數
備註:一旦菜單被修改,無論它是否在顯示窗口裏,應用程序必須調用函數DrawMenuBar。
下列標誌可被設置在參數uFlagS裏:
MF_BITMAP:將一個位圖用作菜單項。參數IpNewltem裏含有該位圖的句柄。
MF_CHECKED:在菜單項旁邊放置一個選取標記。如果應用程序提供一個選取標記位圖(參見SetMenultemBitmaps),則將選取標記位圖放置在菜單項旁邊。
MF_DISABLED:使菜單項無效,使該項不能被選擇,但不使菜單項變灰。
MF_ENABLED:使菜單項有效,使該項能被選擇,並使其從變灰的狀態恢復。
MF_GRAYED:使萊單項無效並變灰,使其不能被選擇。
MF_MENUBARBREAK:對菜單條的功能同MF_MENUBREAK標誌。對下拉式菜單、子菜單或快捷菜單,新列和舊列被垂直線分開。
MF_MENUBREAK:將菜單項放置於新行(對菜單條),或新列(對下拉式菜單、子菜單或快捷菜單)且無分割列。
MF_OWNERDRAW:指定該菜單項為自繪製菜單項。菜單第一次顯示前,擁有菜單的窗口接收一個WM_MEASUREITEM消息來得到菜單項的寬和高。然後,只要菜單項被修改,都將發送WM_DRAWITEM消息給菜單擁有者的窗口程序。
MF_POPUP:指定菜單打開一個下拉式菜單或子菜單。參數uIDNewltem下拉式菜單或子菜單的句柄。此標誌用來給菜單條、打開一個下拉式菜單或子菜單的菜單項、子菜單或快捷菜單加一個名字。
MF_SEPARATOR:畫一條水平區分線。此標誌只被下拉式菜單、子菜單或快捷菜單使用。此區分線不能被變灰、無效或加亮。參數IpNewltem和uIDNewltem無用。
MF_STRING:指定菜單項是一個正文字符串:參數IpNewltem指向該字符串。
MF_UNCHECKED:不放置選取標記在菜單項旁邊(缺省)。如果應用程序提供一個選取標記位圖(參見SetMenultemBitmaps),則將選取標記位圖放置在菜單項旁邊。
下列標誌組不能被一起使用:
MF_BYCOMMAND和MF_BYPOSITION
MF_DISABLED,MF_ENABLED和MF_GRAYED
MF_BITMAP,MF_STRING,MF_OWNERDRAW和MF_SEPARATOR
MF_MENUBARBREAK和MF_MENUBREAK
MF_CHECKED和MF_UNCHECKED
Windows CE環境下,不支持參數fuFlags使用下列標誌:
MF_BTMAP;MF_DISABLE
參數項如果沒變灰,不能使其無效。要使菜單項無效,用MF_GRAYED標誌。
Windows CE 1.0不支持層疊式菜單。在使用Windows CE 1.0時,不能將一個MF_POPUP菜單插入到另一個下拉式菜單中。