0

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

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" 中,我会设法为我的应用程序获取默认语言。

有什么方法可以让我在创建窗口期间选择使用哪些文本?

非常感谢所有建议!

4

1 回答 1

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

于 2012-10-10T06:59:42.340 回答