在CMDIFrameWndEx :: OnCreate期间在CMFCMenuBar上设置CreateFromMenu文本

时间:2012-10-09 14:35:26

标签: c++ mfc

在创建窗口期间,我在菜单中设置文本时遇到问题:

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”中,我可以使用我的应用程序获取默认语言。

是否有某种方法可以选择在创建窗口期间使用哪个文本?

非常感谢所有建议!

1 个答案:

答案 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之后。