小弟想问的问题是:我用的是已经存在的menu资源,比如,有这样的菜单结构.
文件->新建
打开
另存为^
发送->电子邮件页面
电子邮件连接
^^^^^^
我想做的就是把"发送"这个字符修改成自己想要的,前提就是用程序动态修改,不能做成资源的.我用了ModifyMenu,但是它只能修改那些有id号的.请大家给点建议或方法,先谢谢了,要是分不够可以再加
文件->新建
打开
另存为^
发送->电子邮件页面
电子邮件连接
^^^^^^
我想做的就是把"发送"这个字符修改成自己想要的,前提就是用程序动态修改,不能做成资源的.我用了ModifyMenu,但是它只能修改那些有id号的.请大家给点建议或方法,先谢谢了,要是分不够可以再加
GetSubMenu
GetMenuItemInfo
SetMenuItemInfo
后面两个函数里有LPMENUITEMINFO类型的参数这些应该对你有帮助吧。
{
// 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);
}
CMenu *pSubMenu = mainmenu.GetSubMenu(0);
pSubMenu->ModifyMenu(3, MF_BYPOSITION, 0, _T("abc")); // 用MF_BYPOSITION
我一开始始终用的是CMenu mainmenu;中的对象来ModifyMenu,所以就卡在这得不到想要的结果了,原来先要得到下一级子菜单的指针,然后才能对其操作,又学到了,谢谢上面的两位了,揭贴