mfc对话框程序,怎么动态修改菜单文本
mfc对话框程序,如何动态修改菜单文本?
mfc对话框程序,如何动态修改菜单文本?
void CMenuDlg::OnAB()
{
AfxMessageBox(L"AB"); //这里可以弹出对话框
}
void CMenuDlg::OnUpdateAB(CCmdUI *pCmdUI)
{
pCmdUI->SetText(L"123"); //可以执行到这里,但修改后没效果
}
怎么做?谢谢。
------解决思路----------------------
CMenu *cMenu = new CMenu();
cMenu->LoadMenuA(IDR_MENU1);//加载菜单,IDR_MENU1是整个菜单资源的ID
CMenu *subMenu = cMenu->GetSubMenu(0);//获取菜单中的第一个菜单
/*MF_BYPOSITION (by position )表示修改第0个位置的菜单项*/
subMenu->ModifyMenuA(0, MF_BYPOSITION, ID_CONFIG, "Configuration");//将第一个菜单下的第一个菜单项的文字改为“Configuration”
这样不行吗
------解决思路----------------------
获取菜单句柄,然后ModifyMenu来修改
------解决思路----------------------
今天我在看关于菜单的操作时,貌似看到过这样的资料。你可以搜一下MFC菜单操作,会找到你想要的。太晚了,就不帮你看了。
------解决思路----------------------
//
CMenu *pMenu = GetMenu();//获取菜单中的第一个菜单
//从String Table 获取菜单字符串;
strmsg.LoadString(ID_CONNECT);
pMenu->ModifyMenu(ID_CONNECT,MF_BYCOMMAND
------解决思路----------------------
MF_STRING,ID_CONNECT,strmsg);//
strmsg.LoadString(ID_DISCONNECT);
pMenu->ModifyMenu(ID_DISCONNECT,MF_BYCOMMAND
------解决思路----------------------
MF_STRING,ID_DISCONNECT,strmsg);//
strmsg.LoadString(ID_PARAM_SET);
pMenu->ModifyMenu(ID_PARAM_SET,MF_BYCOMMAND
------解决思路----------------------
MF_STRING,ID_PARAM_SET,strmsg);//
strmsg.LoadString(IDS_STRING_SYSTEM);
pMenu->ModifyMenu(0, MF_BYPOSITION, 0,strmsg);//
strmsg.LoadString(IDS_STRING_Config);
pMenu->ModifyMenu(1, MF_BYPOSITION, 0,strmsg);//
mfc对话框程序,如何动态修改菜单文本?
void CMenuDlg::OnAB()
{
AfxMessageBox(L"AB"); //这里可以弹出对话框
}
void CMenuDlg::OnUpdateAB(CCmdUI *pCmdUI)
{
pCmdUI->SetText(L"123"); //可以执行到这里,但修改后没效果
}
怎么做?谢谢。
------解决思路----------------------
CMenu *cMenu = new CMenu();
cMenu->LoadMenuA(IDR_MENU1);//加载菜单,IDR_MENU1是整个菜单资源的ID
CMenu *subMenu = cMenu->GetSubMenu(0);//获取菜单中的第一个菜单
/*MF_BYPOSITION (by position )表示修改第0个位置的菜单项*/
subMenu->ModifyMenuA(0, MF_BYPOSITION, ID_CONFIG, "Configuration");//将第一个菜单下的第一个菜单项的文字改为“Configuration”
这样不行吗
------解决思路----------------------
获取菜单句柄,然后ModifyMenu来修改
------解决思路----------------------
今天我在看关于菜单的操作时,貌似看到过这样的资料。你可以搜一下MFC菜单操作,会找到你想要的。太晚了,就不帮你看了。
------解决思路----------------------
//
CMenu *pMenu = GetMenu();//获取菜单中的第一个菜单
//从String Table 获取菜单字符串;
strmsg.LoadString(ID_CONNECT);
pMenu->ModifyMenu(ID_CONNECT,MF_BYCOMMAND
------解决思路----------------------
MF_STRING,ID_CONNECT,strmsg);//
strmsg.LoadString(ID_DISCONNECT);
pMenu->ModifyMenu(ID_DISCONNECT,MF_BYCOMMAND
------解决思路----------------------
MF_STRING,ID_DISCONNECT,strmsg);//
strmsg.LoadString(ID_PARAM_SET);
pMenu->ModifyMenu(ID_PARAM_SET,MF_BYCOMMAND
------解决思路----------------------
MF_STRING,ID_PARAM_SET,strmsg);//
strmsg.LoadString(IDS_STRING_SYSTEM);
pMenu->ModifyMenu(0, MF_BYPOSITION, 0,strmsg);//
strmsg.LoadString(IDS_STRING_Config);
pMenu->ModifyMenu(1, MF_BYPOSITION, 0,strmsg);//