MFC API——》ModifyMenu
2014-04-09 21:50
246 查看
BOOL ModifyMenu(HMENU hMnu,UINT uPosition,UINT uFlags,UINT uIDNewltem,LPCTSTR IpNewltem);
hMnu:将被修改的菜单的句柄。
uPosition:指定将被修改的菜单项,其含义由参数UFlags决定。
UFlags:指定控制参数uPosition的解释的标志、菜单项的内容、外观和性能。此参数必须为下列值之一和列于备注里的一个值的组合。
MF_BYCOMMAND:表示uPostion给出菜单项的标识符。如果MF_BYCOMMAND和MF_BYPOSITION都没被指定则MF_BYCOMMAND为缺省的标志。
MF_BYPOSITION:表示uPosition给出菜单项基于零的相对位置。
UIDNewltem:指定被修改菜单项的标识符,或者当参数uFlags设置为MF_POPUP时,指定下拉式菜单或子菜单的句柄。
lpNewltem:指定被修改菜单项的内容。其含义依赖于参数UFlags是否包含标志MF_BITMAP,MF_OWNERDRAW或MF_STRING。如下所示:
MF_BITMAP:含有位图句柄;MF_STRING:以`\0’结束的字符串的指针(缺省)。
MF_OWNERDRAW:含有被应用程序应用的32位值,可以保留与菜单项有关的附加数据。当菜单被创建或其外观被修改时,此值在消息WM_MEASURE或WM_DRAWITEM的参数lparam指向的结构中,成员itemData里。
返回值:如果函数调用成功,返回值非零;如果函数调用失败,返回值为零。若想获得更多的错误信息,请调用GetLastError函数。
备注:如果函数ModifyMenu替换了打开下拉式菜单或子菜单的菜单项,则函数销毁旧的下拉式菜单或子菜单,并释放它们占用的内存。
为了使键盘加速键能控制位图或自绘制的菜单项,菜单的拥有者必须处理WM_MENUCHAR消息。参见自绘制菜单和WM_MENUCHAR消息。
一旦菜单被修改,无论它是否在显示窗口里,应用程序必须调用函数DrawMenuBar。要修改已存在菜单项的属性,使用函数CheckMenultem和EnableMenultem更快。
pMenu->ModifyMenu (IDM_SYSMENU_FULL_WINDOW, MF_STRING, IDM_SYSMENU_FULL_WINDOW, _T ("Restore&Title"));
pMenu->ModifyMenu (IDM_SYSMENU_FULL_WINDOW, MF_STRING,IDM_SYSMENU_FULL_WINDOW, _T ("Remove&Title"));
hMnu:将被修改的菜单的句柄。
uPosition:指定将被修改的菜单项,其含义由参数UFlags决定。
UFlags:指定控制参数uPosition的解释的标志、菜单项的内容、外观和性能。此参数必须为下列值之一和列于备注里的一个值的组合。
MF_BYCOMMAND:表示uPostion给出菜单项的标识符。如果MF_BYCOMMAND和MF_BYPOSITION都没被指定则MF_BYCOMMAND为缺省的标志。
MF_BYPOSITION:表示uPosition给出菜单项基于零的相对位置。
UIDNewltem:指定被修改菜单项的标识符,或者当参数uFlags设置为MF_POPUP时,指定下拉式菜单或子菜单的句柄。
lpNewltem:指定被修改菜单项的内容。其含义依赖于参数UFlags是否包含标志MF_BITMAP,MF_OWNERDRAW或MF_STRING。如下所示:
MF_BITMAP:含有位图句柄;MF_STRING:以`\0’结束的字符串的指针(缺省)。
MF_OWNERDRAW:含有被应用程序应用的32位值,可以保留与菜单项有关的附加数据。当菜单被创建或其外观被修改时,此值在消息WM_MEASURE或WM_DRAWITEM的参数lparam指向的结构中,成员itemData里。
返回值:如果函数调用成功,返回值非零;如果函数调用失败,返回值为零。若想获得更多的错误信息,请调用GetLastError函数。
备注:如果函数ModifyMenu替换了打开下拉式菜单或子菜单的菜单项,则函数销毁旧的下拉式菜单或子菜单,并释放它们占用的内存。
为了使键盘加速键能控制位图或自绘制的菜单项,菜单的拥有者必须处理WM_MENUCHAR消息。参见自绘制菜单和WM_MENUCHAR消息。
一旦菜单被修改,无论它是否在显示窗口里,应用程序必须调用函数DrawMenuBar。要修改已存在菜单项的属性,使用函数CheckMenultem和EnableMenultem更快。
pMenu->ModifyMenu (IDM_SYSMENU_FULL_WINDOW, MF_STRING, IDM_SYSMENU_FULL_WINDOW, _T ("Restore&Title"));
pMenu->ModifyMenu (IDM_SYSMENU_FULL_WINDOW, MF_STRING,IDM_SYSMENU_FULL_WINDOW, _T ("Remove&Title"));
相关文章推荐
- MFC API——》CheckMenuItem
- MFC API——》GetSystemMenu
- 读写磁盘文件专题--采用C/C++/MFC/WIN32(API)方式
- 系统理解Win32 API和MFC(下)转载
- 谷歌眼镜Mirror API之Menu Items
- MFC之Menu的使用
- 转:对MFC封装Windows通讯API的研究
- nw.js node-webkit系列(7)Native UI API Menu的使用
- C、C++、API、SDK、IDE、VC++、MSDN、MFC、OWL、VCL、ATL 、BCB
- 系统理解Win32 API和MFC
- Why you should learn the API before MFC (转自国外的网站)
- C Runtime Library来历, API, MFC, ATL关系
- MFC中获取窗口句柄以及相关API
- C, C++, MFC, and Windows API FAQs
- NODE-WEBKIT教程(6)NATIVE UI API 之MENU(菜单)
- 计算机世界的道(C/ASM)生一(OS),一生二(API),二生万象(MFC/COM)——学包装技术的程序员将来会损失比较大,因为不了解本质,一旦包装过时就会被淘汰
- C# Web API Modify Post Data Size Limit
- VC++6.0&&VS2008&MFC&API学习问题总结(三)(多线程更新控件)
- 在用vc6.0 MFC API 接口时出现的问题
- 高级编程语言复习(Cpp/API/MFC)