我们做的一个项目里面要实现软件的多语言功能,用户在点击菜单上的一种语言项时界面上所有的,相关字符串都切换成该语言。后来发现在多文档视图下,初始化子框架菜单内容时失败。代码如下:
CMenu* pMenu = GetMenu();
。。。修改菜单操作。
后来找到了解决方法 就是在子框架的OnCreate函数中,
CMenu* pMenu = CMenu::FromHandle(m_hMenuShared);
pMenu->ModifyMenu(0, MF_BYPOSITION|MF_STRING, 0, "nksdkfjksd");
这样好使。
如果在消息响应函数里点击某种语言来切换。则需要在消息响应函数里做如下处理:
CMenu* pMenu = AfxGetApp()->GetMainWnd()->GetMenu();
pMenu->ModifyMenu(0, MF_BYPOSITION|MF_STRING, 0, "fgfdFGGFFGF");
AfxGetApp()->GetMainWnd()->DrawMenuBar();
当然这样写:
CMenu* pMenu = CMenu::FromHandle(m_hMenuShared);
pMenu->ModifyMenu(0, MF_BYPOSITION|MF_STRING, 0, "fgfdFGGFFGF");
AfxGetApp()->GetMainWnd()->DrawMenuBar();
也可以。