VC中多语菜单的实现(3) m_pEnglish.LoadMenu(IDR_MAINFRAME_EN);\\调入英文菜单资源 HMENU hm=::GetMenu(this- >m_hWnd) ;\\获得中文菜单资源 m_pChinese.Attach(hm); \\保存中文菜单资源 return 0; } ---- 六、响应改变菜单命令 ---- 利用ClassWizard为CMainFrame类加入ID_MENU_CHANGE菜单命令响应函数: void CMainFrame::OnMenuChange() { // TODO: Add your command handler code here if(m_Menu==E) //如果现在菜单为英语 { SetMenu(&m_pChinese);// 把菜单设置为汉语 m_Menu=C; } else if(m_Menu==C) //如果现在菜单为汉语 { SetMenu(&m_pEnglish);//设置菜单为英语 m_Menu=E; } } ---- 七、销毁菜单 ---- 在CMainFrame的析够函数中销毁菜单: CMainFrame::~CMainFrame() { m_pChinese.DestroyMenu(); m_pEnglish.DestroyMenu(); } ---- 编译运行程序您就可以获得一个具有英汉对照菜单的应用程序。 ---- 八、结束语 ---- 上述例子虽然只给除了两种语言的菜单,但很容易编出多语言菜单的应用程序。由于各种语言菜单实际上是 不同的菜单资源,所以,在同一应用程序中,可以使用不同的菜单。如共享软件中注册的用户使用一种菜单,未注 册的用户使用另一种菜单,而不必发行多个版本和多次安装,从而使注册变得容易并能得到软件更多的功能。