菜单 (菜单和其他资源)

本部分介绍菜单并说明如何使用菜单。

本节内容

名称 描述
关于菜单 讨论菜单。
使用菜单 提供与菜单相关的任务的代码示例。
菜单参考 包含 API 引用。
名称 描述
AppendMenu 将新项追加到指定菜单栏、下拉菜单、子菜单或快捷菜单的末尾。 可以使用此函数指定菜单项的内容、外观和行为。
CheckMenuItem 将指定菜单项检查标记属性的状态设置为选中或清除。
CheckMenuRadioItem 检查指定的菜单项并使其成为单选项。 同时,函数会清除关联组中的所有其他菜单项,并清除这些项目的单选项类型标志。
CreateMenu 创建菜单。 菜单最初为空,但可以使用 InsertMenuItemAppendMenuInsertMenu 函数填充菜单项。
CreatePopupMenu 创建下拉菜单、子菜单或快捷菜单。 菜单最初为空。 可以使用 InsertMenuItem 函数插入或追加菜单项。 还可以使用 InsertMenu 函数插入菜单项, 使用 AppendMenu 函数来追加菜单项。
DeleteMenu 从指定菜单中删除项。 如果菜单项打开菜单或子菜单,此函数将销毁菜单或子菜单的句柄,并释放菜单或子菜单使用的内存。
DestroyMenu 销毁指定的菜单并释放该菜单占用的任何内存。
DrawMenuBar 重绘指定窗口的菜单栏。 如果菜单栏在系统创建窗口后发生更改,则必须调用此函数来绘制更改后的菜单栏。
EnableMenuItem 启用、禁用指定菜单项或将指定菜单项灰显。
EndMenu 结束调用线程的活动菜单。
获取菜单 检索分配给指定窗口的菜单的句柄。
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 的任何扩展功能,仍然可以使用 InsertMenuIteu
名称 描述
WM_COMMAND 当用户从菜单中选择命令项、控件将通知消息发送到其父窗口或转换快捷键击时发送。
WM_CONTEXTMENU 通知窗口用户单击了鼠标右键 (窗口中 右键单击) 。
WM_ENTERMENULOOP 通知应用程序的main窗口过程已输入菜单模式循环。
WM_EXITMENULOOP 通知应用程序的main窗口过程已退出菜单模式循环。
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 函数的扩展参数。