當使用者選取功能表項目時,傳送至功能表的擁有者視窗。
#define WM_MENUSELECT 0x011F
參數
-
w參數
-
低階字會指定功能表項目或子功能表索引。 如果選取的項目是指令項目,則此參數會包含功能表項目的識別碼。 如果選取的專案開啟下拉式功能表或子功能表,則此參數會包含主功能表中下拉式功能表或子功能表的索引,而 lParam 參數會包含主功能表的控制碼;使用 GetSubMenu 函式來取得下拉式功能表或子功能表的功能表控制碼。
高階字會指定一或多個功能表旗標。 此參數可以是下列其中一或多個值。
價值觀 Meaning - MF_BITMAP
- 0x000000004公升
項目顯示點陣圖。 - MF_CHECKED
- 0x00000008公升
項目已核對。 - MF_DISABLED
- 0x000000002公升
項目已停用。 - MF_GRAYED
- 0x00000001公升
項目呈灰色。 - MF_HILITE
- 0x00000080公升
項目會反白顯示。 - MF_MOUSESELECT
- 0x00008000公升
用滑鼠選取項目。 - MF_OWNERDRAW
- 0x00000100公升
項目是擁有者繪製的項目。 - MF_POPUP
- 0x00000010公升
項目會開啟下拉式功能表或子功能表。 - MF_SYSMENU
- 0x00002000公升
項目包含在視窗功能表中。 lParam 參數包含與訊息相關聯的功能表控制碼。 -
l參數
-
主功能表的控點。
返回值
如果應用程式處理此訊息,它應該傳回零。
備註
當使用者在開啟的功能表中選取功能表項目時,通常會透過滑鼠懸停或鍵盤導覽,將此訊息傳送至功能表的擁有者視窗。 如果功能表已關閉,則當使用者將滑鼠移至最上層功能表項目上時,不會傳送此訊息。 只有在使用者按一下最上層功能表項目或按 ALT 鍵開啟功能表之後,才會傳送此訊息。
這很重要
當使用者按兩下功能表項目或按 Enter 鍵叫用選取的功能表項目時,系統會將WM_COMMAND或WM_MENUCOMMAND訊息傳送至視窗,視功能表 MENUINFO 結構的 dwStyle 成員值而定。 使用這些訊息,在呼叫選取的指令時執行動作。
如果 wParam 的高階字包含 0xFFFF,且 lParam 參數包含 Null,則系統已關閉功能表。
請勿將值 -1 用於 wParam 的高階單字,因為此值會指定為 (UINT)HIWORD (wParam) 。 即使 0xFFFF 在已簽署的內容中可能會解譯為 -1,但如果值是 0xFFFF,則會解譯為 0x0000FFFF,而不是 -1,因為轉換成 UINT。
例如,這段程式碼檢查的是 0xFFFF,而不是 -1:
case WM_MENUSELECT:
{
UINT menuItem = LOWORD(wParam);
UINT flags = HIWORD(wParam);
HMENU hMenu = (HMENU)lParam;
// Check for 0xFFFF, not -1.
if (flags == 0xFFFF && hMenu == NULL) {
// No menu item selected (menu closed).
// ...
}
break;
}
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 |
Windows 2000 Professional [僅限傳統型應用程式] |
| 最低支援的伺服器 |
Windows 2000 Server [僅限傳統型應用程式] |
| Header |
|