小弟想问的问题是:我用的是已经存在的menu资源,比如,有这样的菜单结构.
 文件->新建
       打开
       另存为^
       发送->电子邮件页面
             电子邮件连接
             ^^^^^^
我想做的就是把"发送"这个字符修改成自己想要的,前提就是用程序动态修改,不能做成资源的.我用了ModifyMenu,但是它只能修改那些有id号的.请大家给点建议或方法,先谢谢了,要是分不够可以再加
          

解决方案 »

  1.   

    几个函数  
    GetSubMenu  
    GetMenuItemInfo 
    SetMenuItemInfo  
    后面两个函数里有LPMENUITEMINFO类型的参数这些应该对你有帮助吧。
      

  2.   

    void CAsdasdDlg::OnRButtonDown(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default ClientToScreen(&point);
    CMenu mainmenu;
    mainmenu.LoadMenu(IDR_MENU1);
    CMenu *pSubMenu = mainmenu.GetSubMenu(0);
    pSubMenu->ModifyMenu(3, MF_BYPOSITION, 0, _T("abc")); // 用MF_BYPOSITION
    pSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);

    CDialog::OnRButtonDown(nFlags, point);
    }
      

  3.   

    谢谢楼上的两位,我的问题解决了,是用的tufaqing的方法,
    CMenu *pSubMenu = mainmenu.GetSubMenu(0);
    pSubMenu->ModifyMenu(3, MF_BYPOSITION, 0, _T("abc")); // 用MF_BYPOSITION
    我一开始始终用的是CMenu mainmenu;中的对象来ModifyMenu,所以就卡在这得不到想要的结果了,原来先要得到下一级子菜单的指针,然后才能对其操作,又学到了,谢谢上面的两位了,揭贴