本部分介绍菜单,并说明如何使用它们。
在本部分中
| 名字 | 描述 |
|---|---|
| 有关菜单 的 | 讨论菜单。 |
| 使用菜单 | 提供与菜单相关的任务的代码示例。 |
| 菜单参考 | 包含 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 函数的扩展参数。 |