在创建窗口期间,我在菜单中设置文本时遇到问题:
OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...
CMFCMenuBar m_wndMenuBar;
CMenu menu;
menu.LoadMenu(IDR_MENU_ENGGB);
m_wndMenuBar.Create(this);
m_wndMenuBar.CreateFromMenu(menu.GetSafeHmenu(),TRUE,TRUE);
...
}
我的问题是以前的状态是从注册表中获取的,我没有找到一种方法在创建窗口期间将语言更改为正确的语言。
我发现如果我将应用程序的条目转储到HKEY_CURRENT_USER \ Software \“MyApplication”中,我可以使用我的应用程序获取默认语言。
是否有某种方法可以选择在创建窗口期间使用哪个文本?
非常感谢所有建议!
答案 0 :(得分:0)
通过覆盖LoadState来解决它,从注册表中找到状态
HKEY_CURRENT_USER\Software\"MyApplication"\Workspace\MFCToolBar-"id"
BOOL CVodiaMenuBar::LoadState( LPCTSTR lpszProfileName, int nIndex, UINT uiID)
{
//CMFCMenuBar::LoadState(lpszProfileName, nIndex, uiID);
return TRUE;
}
通过不调用父级,我的更改保留在OnCreate之后。