捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >API档案 > 正文
1 2017.07

InsertMenu

点击次数:1312 更新时间:2017-7-1 21:36:52  【打印此页

原文链接 -> 传送门

函数功能:

在菜单中插入一个新的菜单项,并使其它菜单项下移。

注意:InsertMenu 函数已经被 InsertMenuItem 函数取代,如果你不需要 InsertMenuItem 函数的拓展特性,你仍然可以使用本函数。


API 函数原型:

注释:_In_ 说明该参数是输入的;_In_opt_ 说明该参数使输入的、可选的。

BOOL WINAPI InsertMenu(
  _In_     HMENU    hMenu,
  _In_     UINT     uPosition,
  _In_     UINT     uFlags,
  _In_     UINT_PTR uIDNewItem,
  _In_opt_ LPCTSTR  lpNewItem
);



参数解析:
 

参数

含义

hMenu

指向将要被修改的菜单的句柄

uPosition

指向新菜单项插入之前的对应插入位置的菜单项,其含义由 uFlags 参数决定

uFlags

1. 控制 uPosition 参数的解释、新菜单项的内容、显示和操作

2. 该参数必须包含下列必须值之一:

含义

MF_BYCOMMAND
(0x00000000L)

1. 指向 uPosition 参数给定的菜单项 ID
2. 如果 MF_BYCOMMAND 和 MF_BYPOSITION 标识都没有被指定,则默认使用 MF_BYCOMMAND 标识

MF_BYPOSITION
(0x00000400L)

1. 指向 uPosition 参数给定的从 0 开始计数的新菜单项的相对位置
2. 如果 uPosition 的值是 -1,则将新菜单项添加到菜单的最后


3. 还必须至少包含下列标识值中的一个:

含义

MF_BITMAP
(0x00000004L)

使用一个位图作为菜单项,lpNewItem 参数包含一个位图句柄

MF_CHECKED
(0x00000008L)

1. 在菜单项旁添加一个选择标记
2. 如果应用程序支持选中标记图像(参考 SetMenuItemBitmaps 函数),这个标识就会在菜单项旁显示选中标记图像

MF_DISABLED
(0x00000002L)

菜单项失效所以菜单不可选,但是并不是灰化它

MF_ENABLED
(0x00000000L)

菜单项生效,此时菜单项可选择,使其从灰化状态恢复

MF_GRAYED
(0x00000001L)

菜单项失效并灰化,使其无法被选择

MF_MENUBARBREAK
(0x00000020L)

1. 对菜单栏的操作与 MF_MENUBREAK 标识相同
2. 对于一个下拉菜单,子菜单或快捷菜单,新列与旧列将会被竖线分开

MF_MENUBREAK
(0x00000040L)

放置菜单到新的一行(对于菜单栏)或者新的一列(对于下拉菜单,子菜单或快捷菜单),并且没有分割列

MF_OWNERDRAW
(0x00000100L)

1. 指定该菜单项为自绘制菜单项。该菜单项第一次显示前,拥有该菜单项的窗口收到一个 WM_MEASUREITEM 消息来收到菜单项的宽度和高度
2. 任何时候菜单项需要更新时都将发送 WM_DRAWITEM 消息到菜单所属窗口的处理过程

MF_POPUP
(0x00000010L)

1. 指定该菜单项打开一个下拉菜单或子菜单
2. uIDNewItem 参数指向一个下拉菜单或子菜单的句柄
3. 这个标识一般用于在菜单栏添加一个菜单名或者添加一个打开子下拉菜单,子菜单或快捷菜单的菜单项

MF_SEPARATOR
(0x00000800L)

1. 绘制一条水平分割线
2. 该标识只用于下拉菜单,子菜单或快捷菜单
3. 这条线不能被灰化,无效或高亮
4. lpNewItem 和 uIDNewItem 参数将会被忽略

MF_STRING
(0x00000000L)

1. 指定菜单项为字符串
2. lpNewItem 参数是字符串的指针

MF_UNCHECKED
(0x00000000L)

1. 不添加菜单项选择标识(默认)
2. 如果应用程序提供选中标识图像(参考 SetMenuItemBitmaps 函数),该标识将会在菜单项旁显示一个选中标识图像

uIDNewItems

存储新菜单项的 ID,如果 uFlags 设置为 MF_POPUP 标志则指向一个下拉菜单或子菜单的句柄

lpNewItem

1. 指定新菜单项的内容
2. 参数 lpNewItem 的解释取决于 uFlags 参数是否包含 MF_BITMAP、MF_OWNERDRAW 或 MF_STRING 标识



返回值

1. 如果函数调用成功,返回值为非 0;

2. 如果函数调用失败,返回值为 0。

获取有关错误的更多信息,请调用 GetLastError 函数。


备注:

1. 无论菜单项是否在一个可显示窗口中,在菜单改变时,应用程序都必须调用 DrawMenuBar 函数。

2. 以下标识组合不能同时被使用:

 

·         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



需求:
 

Minimum supported client

Windows 2000 专业版 [仅桌面应用程序]

Minimum supported server

Windows 2000 服务器版 [仅桌面应用程序]

Header

Winuser.h (包含于 Windows.h)

Library

User32.lib

DLL

User32.dll

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1312 更新时间:2017-7-1 21:36:52  【打印此页

上一条:AppendMenu(C)

下一条:ModifyMenu

关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修