c++ mfc实现中英文菜单的动态切换

1 新建SDI

2 在视图菜单下面添加菜单-英文,ID为ID_ENGLISH

3 用文本打开项目下的资源文件

4 在对应的中文菜单下面添加下面的代码

IDR_MAINFRAME_ENGLISH MENU PRELOAD DISCARDABLE
BEGIN
POPUP "File(&F)"
BEGIN
MENUITEM "New(&N)\tCtrl+N",             ID_FILE_NEW
MENUITEM "Open(&O)...\tCtrl+O",         ID_FILE_OPEN
MENUITEM "Save(&S)\tCtrl+S",            ID_FILE_SAVE
MENUITEM "Save as(&A)...",              ID_FILE_SAVE_AS
MENUITEM SEPARATOR
MENUITEM "Print(&P)...\tCtrl+P",        ID_FILE_PRINT
MENUITEM "Print Preview(&V)",           ID_FILE_PRINT_PREVIEW
MENUITEM "Print Setting(&R)...",        ID_FILE_PRINT_SETUP
MENUITEM SEPARATOR
MENUITEM "Recent Files",                ID_FILE_MRU_FILE1, GRAYED
MENUITEM SEPARATOR
MENUITEM "Exit(&X)",                    ID_APP_EXIT
END
POPUP "Edit(&E)"
BEGIN
MENUITEM "Undo(&U)\tCtrl+Z",            ID_EDIT_UNDO
MENUITEM SEPARATOR
MENUITEM "Cut(&T)\tCtrl+X",             ID_EDIT_CUT
MENUITEM "Copy(&C)\tCtrl+C",            ID_EDIT_COPY
MENUITEM "Paste(&P)\tCtrl+V",           ID_EDIT_PASTE
END
POPUP "View(&V)"
BEGIN
MENUITEM "ToolBar(&T)",                 ID_VIEW_TOOLBAR
MENUITEM "StatusBar(&S)",               ID_VIEW_STATUS_BAR
MENUITEM "Chinese",                     ID_ENGLISH
END
POPUP "Help(&H)"
BEGIN
MENUITEM "About Test(&A)...",     ID_APP_ABOUT
END
END

5 给CMainFrame添加成员变量

enum Enum{e,c}m_current;
	CMenu m_englistmenu;
	CMenu m_chinesemenu;

6 在CMainFrame的构造函数中添加

m_current=c;

7 在CMainFrame的OnCreate里面添加 

m_englistmenu.LoadMenu("IDR_MAINFRAME_ENGLISH");
	HMENU m_hMenu=::GetMenu(this->m_hWnd); // 保存中文菜单
	m_chinesemenu.Attach(m_hMenu);

8 实现英文菜单命令消息

void CMainFrame::OnEnglish()
{
	// TODO: 在此添加命令处理程序代码
	if(m_current==e)
	{
		SetMenu(&m_chinesemenu);
		m_current=c;
	}
	else
	{
		SetMenu(&m_englistmenu);
		m_current=e;
	}
}

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值