MFC API——》ModifyMenu

来源:互联网 发布:matlab遗传算法使用 编辑:程序博客网 时间:2024/06/07 07:52

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_OWNERDRAWMF_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"));

0 0