本節說明功能表,並說明如何使用功能表。
在本節中
| 名字 | 描述 |
|---|---|
| 功能表 | 討論功能表。 |
| 使用功能表 | 提供與功能表相關的工作程式代碼範例。 |
| 功能表參考 | 包含 API 參考。 |
功能表函式
| 名字 | 描述 |
|---|---|
| AppendMenu | 將新專案附加至指定功能表欄的結尾、下拉功能表、子功能表或快捷方式選單。 您可以使用此函式來指定選單項的內容、外觀和行為。 |
| CheckMenuItem | 將指定功能表項的複選標記屬性的狀態設定為已選取或清除。 |
| CheckMenuRadioItem | 檢查指定的功能表項,並使它成為單選專案。 同時,函式會清除相關聯群組中的所有其他功能表項,並清除這些專案的無線電項目類型旗標。 |
| CreateMenu | 建立功能表。 功能表一開始是空的,但可以使用 InsertMenuItem、AppendMenu和 InsertMenu 函式來填入功能表項。 |
| CreatePopupMenu | 建立下拉功能表、子功能表或快捷方式功能表。 功能表一開始是空的。 您可以使用 insertMenuItem函式插入或附加功能表項。 您也可以使用 InsertMenu 函式來插入功能表項,並使用 AppendMenu 函式來附加功能表項。 |
| DeleteMenu | 從指定的功能表中刪除專案。 如果功能表項開啟功能表或子功能表,此函式會終結功能表或子功能表的句柄,並釋放功能表或子功能表所使用的記憶體。 |
| DestroyMenu | 終結指定的功能表,並釋放功能表佔用的任何記憶體。 |
| DrawMenuBar | 重新繪製指定視窗的功能表列。 如果功能表列在系統建立窗口之後變更,則必須呼叫此函式來繪製變更的功能表列。 |
| EnableMenuItem | 啟用、停用或灰色指定的功能表項。 |
| EndMenu | 結束呼叫線程的作用中功能表。 |
| GetMenu | 擷取指派給指定視窗之功能表的句柄。 |
| GetMenuBarInfo | 擷取指定功能表欄的相關信息。 |
| GetMenuCheckMarkDimensions | 擷取預設複選標記點陣圖的維度。 系統會在選取的功能表項旁邊顯示此點陣圖。 呼叫 SetMenuItemBitmaps 函式來取代功能表項的預設複選標記點陣圖之前,應用程式必須呼叫 getMenuCheckMarkDimensions 來判斷正確的位圖大小。 |
| GetMenuDefaultItem | 決定指定功能表上的預設功能表項。 |
| GetMenuInfo | 擷取指定功能表的相關信息。 |
| GetMenuItemCount | 擷取指定功能表中的項目數。 |
| GetMenuItemID | 擷取位於功能表中指定位置之功能表項的功能表項標識碼。 |
| GetMenuItemInfo | 擷取功能表項的相關信息。 |
| GetMenuItemRect | 擷取指定功能表項的周框。 |
| GetMenuState | 擷取與指定之功能表項相關聯的功能表旗標。 如果功能表項開啟子功能表,此函式也會傳回子功能表中的項目數。 |
| GetMenuString | 將指定功能表項的文字字串複製到指定的緩衝區。 |
| GetSubMenu | 擷取由指定功能表項啟動之下拉功能表或子功能表的句柄。 |
| GetSystemMenu | 可讓應用程式存取視窗功能表(也稱為系統功能表或控件功能表),以進行複製和修改。 |
| HiliteMenuItem | 醒目提示或移除功能表欄中專案的醒目提示。 |
| InsertMenuItem | 在功能表中的指定位置插入新的功能表項。 |
| IsMenu | 判斷句柄是否為功能表句柄。 |
| LoadMenu | 從與應用程式實例相關聯的可執行檔 (.exe) 檔案載入指定的功能表資源。 |
| LoadMenuIndirect | 在記憶體中載入指定的功能表範本。 |
| MenuItemFromPoint | 判斷哪個功能表項,如果有的話,位於指定的位置。 |
| ModifyMenu | 變更現有的功能表項。 此函式可用來指定功能表項的內容、外觀和行為。 |
| RemoveMenu | 刪除功能表項,或從指定的功能表中斷連結子功能表。 如果功能表項開啟下拉功能表或子功能表,RemoveMenu 不會終結功能表或其句柄,讓功能表可以重複使用。 呼叫此函式之前,GetSubMenu 函式應該會擷取下拉功能表或子功能表的句柄。 |
| SetMenu | 將新的功能表指派給指定的視窗。 |
| SetMenuDefaultItem | 設定指定功能表的預設功能表項。 |
| SetMenuInfo | 設定指定功能表的資訊。 |
| SetMenuItemBitmaps | 將指定的點陣圖與功能表項產生關聯。 無論選取功能表項還是清除功能表項,系統會在功能表項旁邊顯示適當的點陣圖。 |
| SetMenuItemInfo | 變更功能表項的相關信息。 |
| TrackPopupMenu | 在指定的位置顯示快捷方式功能表,並追蹤功能表上項目的選取範圍。 快捷方式功能表可以出現在畫面上的任何位置。 |
| TrackPopupMenuEx | 在指定的位置顯示快捷方式功能表,並追蹤快捷方式功能表上的項目選取專案。 快捷方式功能表可以出現在畫面上的任何位置。 |
下列函式已經過時。
| 名字 | 描述 |
|---|---|
| InsertMenu | 將新的功能表項插入功能表,將其他專案向下行動功能表。
注意:InsertMenu 函式已被 insertMenuItem 函式取代。 不過,如果您不需要 InsertMenuItem的任何擴充功能,您仍然可以使用 InsertMenuItem。 |
功能表通知
| 名字 | 描述 |
|---|---|
| WM_COMMAND | 當使用者從功能表選取命令專案、控制項將通知訊息傳送至其父視窗,或翻譯快捷鍵時傳送。 |
| WM_CONTEXTMENU | 通知視窗,使用者在視窗中按下滑鼠右鍵(按兩下滑鼠右鍵]。 |
| WM_ENTERMENULOOP | 通知應用程式主視窗程式已輸入功能表強制回應迴圈。 |
| WM_EXITMENULOOP | 通知應用程式主視窗程式功能表模式循環已結束。 |
| WM_GETTITLEBARINFOEX | 傳送至要求擴充標題欄資訊。 視窗會透過其 WindowProc 函式接收此訊息。 |
| WM_MENUCOMMAND | 當使用者從功能表進行選取時傳送。 |
| WM_MENUDRAG | 當使用者拖曳功能表項時,傳送至拖放功能表的擁有者。 |
| WM_MENUGETOBJECT | 當滑鼠游標進入功能表項或從專案中央移至專案的頂端或底部時,傳送至拖放功能表的擁有者。 |
| WM_MENURBUTTONUP | 當使用者在游標位於功能表項時放開滑鼠右鍵時傳送。 |
| WM_NEXTMENU | 使用向右鍵或向左鍵在功能表列與系統功能表之間切換時傳送至應用程式。 |
| WM_UNINITMENUPOPUP | 當下拉功能表或子功能表已終結時傳送。 |
功能表結構
| 名字 | 描述 |
|---|---|
| MDINEXTMENU | 包含要啟動之功能表的相關信息。 |
| MENUBARINFO | 包含功能表欄資訊。 |
| MENUEX_TEMPLATE_HEADER | 定義擴充功能表範本的標頭。 此結構定義僅供說明;它不存在於任何標準頭檔中。 |
| MENUEX_TEMPLATE_ITEM | 在延伸功能表範本中定義功能表項。 此結構定義僅供說明;它不存在於任何標準頭檔中。 |
| MENUGETOBJECTINFO | 包含滑鼠游標開啟之功能表的相關信息。 |
| MENUINFO | 包含功能表的相關信息。 |
| MENUITEMINFO | 包含功能表項的相關信息。 |
| MENUITEMTEMPLATE | 在功能表範本中定義功能表項。 |
| MENUITEMTEMPLATEHEADER | 定義功能表範本的標頭。 完整的功能表範本包含標頭和一或多個功能表項清單。 |
| TPMPARAMS | 包含 TrackPopupMenuEx 函式的擴充參數。 |