InsertMenuA 函式 (winuser.h)
將新的功能表項目插入功能表,將其他專案向下移動功能表。
注意InsertMenu 函式已取代InsertMenuItem函式。 不過,如果您不需要InsertMenuItem的任何擴充功能,您仍然可以使用InsertMenu。
語法
BOOL InsertMenuA(
[in] HMENU hMenu,
[in] UINT uPosition,
[in] UINT uFlags,
[in] UINT_PTR uIDNewItem,
[in, optional] LPCSTR lpNewItem
);
參數
[in] hMenu
類型: HMENU
要變更之功能表的控制碼。
[in] uPosition
類型: UINT
要插入新功能表項目的功能表項目,由 uFlags 參數決定。
[in] uFlags
類型: UINT
控制 uPosition 參數的解譯,以及新功能表項目的內容、外觀和行為。 此參數必須包含下列其中一個必要值。
參數也必須至少包含下列其中一個值。
值 | 意義 |
---|---|
|
使用點陣圖做為功能表項目。 lpNewItem參數包含點陣圖的控制碼。 |
|
將核取記號放在功能表項目旁邊。 如果應用程式提供核取記號點陣圖 (請參閱 SetMenuItemBitmaps) ,此旗標會顯示功能表項目旁的核取記號點陣圖。 |
|
停用功能表項目,使其無法選取,但不會呈現灰色。 |
|
啟用功能表項目,以便選取功能表項目,並從其灰色狀態還原它。 |
|
停用功能表項目並呈現灰色,因此無法選取它。 |
|
函式與功能表列 的MF_MENUBREAK 旗標相同。 對於下拉式功能表、子功能表或快捷方式功能表,新資料行會以垂直線分隔舊資料行。 |
|
將專案放在功能表列的新行 () ,或在下拉式功能表、子功能表或快捷) 功能表 (的新資料行 (中,而不分隔資料行。 |
|
指定專案是擁有者繪製的專案。 第一次顯示功能表之前,擁有功能表的視窗會收到 WM_MEASUREITEM 訊息,以擷取功能表項目的寬度和高度。 每當必須更新功能表項目的外觀時, 就會將WM_DRAWITEM 訊息傳送至擁有者視窗的視窗程式。 |
|
指定功能表項目會開啟下拉式功能表或子功能表。 uIDNewItem參數會指定下拉式功能表或子功能表的控制碼。 此旗標可用來將功能表名稱新增至功能表列,或開啟子功能表至下拉式功能表、子功能表或快捷方式功能表的功能表項目。 |
|
繪製水準分隔線。 此旗標僅用於下拉式功能表、子功能表或快捷方式功能表。 線條無法呈現灰色、停用或反白顯示。 忽略 lpNewItem和uIDNewItem參數。 |
|
指定功能表項目是文字字串; lpNewItem 參數是字串的指標。 |
|
不會在功能表項目旁放置核取記號, (預設) 。 如果應用程式提供核取記號點陣圖 (看到 SetMenuItemBitmaps 函式) ,此旗標會顯示功能表項目旁的清除點陣圖。 |
[in] uIDNewItem
類型: UINT_PTR
新功能表項目的識別碼,或者 ,如果 uFlags 參數已設定 MF_POPUP 旗標,則為下拉式功能表或子功能表的控制碼。
[in, optional] lpNewItem
類型: LPCTSTR
新功能表項目的內容。 lpNewItem的解譯取決於uFlags參數是否包含MF_BITMAP、MF_OWNERDRAW或MF_STRING旗標,如下所示。
值 | 意義 |
---|---|
|
包含點陣圖控制碼。 |
|
包含應用程式提供的值,可用來維護與功能表項目相關的其他資料。 此值位於建立功能表項目或更新功能表項目時,由WM_MEASUREITEM或WM_DRAWITEM訊息的lParam參數所指向之結構的itemData成員中。 |
|
包含以 Null 結尾字串的指標, (預設) 。 |
傳回值
類型: BOOL
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
每當功能表變更時,應用程式都必須呼叫 DrawMenuBar 函式,無論功能表是否在顯示的視窗中。
下列旗標群組不能一起使用:
- 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
注意
winuser.h 標頭會將 InsertMenu 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包括 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
API 集合 | ext-ms-win-ntuser-menu-l1-1-0 (在 Windows 8) |
另請參閱
概念
其他資源
參考