VC中,怎么在软件中实现中英文版本的切换
2个回答
展开全部
VC中实现多语菜单非常容易,下面以英汉对照菜单为例说明多语菜单实现的方法。
一、建立工程项目文件
选择语言为中文,其余采用默认,添加中英文切换菜单IDD_MENU_CHANGE
二、用文本形式打开资源文件,找到IDR_MAINFRAME的菜单文本内容如下:
view sourceprint?
01.IDR_MAINFRAME MENU PRELOAD DISCARDABLE
02.BEGIN
03. POPUP "文件(&F)"
04. BEGIN
05. MENUITEM "新建(&N)\tCtrl+N", ID_FILE_NEW
06. MENUITEM "打开(&O)...\tCtrl+O", ID_FILE_OPEN
07. MENUITEM "保存(&S)\tCtrl+S", ID_FILE_SAVE
08. MENUITEM "另存为(&A)...", ID_FILE_SAVE_AS
09. MENUITEM SEPARATOR
10. MENUITEM "打印(&P)...\tCtrl+P", ID_FILE_PRINT
11. MENUITEM "打印预览(&V)", ID_FILE_PRINT_PREVIEW
12. MENUITEM "打印设置(&R)...", ID_FILE_PRINT_SETUP
13. MENUITEM SEPARATOR
14. MENUITEM "最近文件", ID_FILE_MRU_FILE1, GRAYED
15. MENUITEM SEPARATOR
16. MENUITEM "退出(&X)", ID_APP_EXIT
17. END
18. POPUP "编辑(&E)"
19. BEGIN
20. MENUITEM "撤消(&U)\tCtrl+Z", ID_EDIT_UNDO
21. MENUITEM SEPARATOR
22. MENUITEM "剪切(&T)\tCtrl+X", ID_EDIT_CUT
23. MENUITEM "复制(&C)\tCtrl+C", ID_EDIT_COPY
24. MENUITEM "粘贴(&P)\tCtrl+V", ID_EDIT_PASTE
25. END
26. POPUP "查看(&V)"
27. BEGIN
28. MENUITEM "工具栏(&T)", ID_VIEW_TOOLBAR
29. MENUITEM "状态栏(&S)", ID_VIEW_STATUS_BAR
30. MENUITEM "弹出CD", ID_VIEW_FULLSCREEN
31. MENUITEM "英文", ID_MENU_CHANGE
32. END
33. POPUP "帮助(&H)"
34. BEGIN
35. MENUITEM "关于 FullScreen(&A)...", ID_APP_ABOUT
36. END
37.END
在此后加入英文菜单资源复制上述文本,把其中的中文改成英文,并作些改动
view sourceprint?
01.IDR_MAINFRAME_ENGLISH MENU PRELOAD DISCARDABLE
02.BEGIN
03. POPUP "File(&F)"
04. BEGIN
05. MENUITEM "New(&N)\tCtrl+N", ID_FILE_NEW
06. MENUITEM "Open(&O)...\tCtrl+O", ID_FILE_OPEN
07. MENUITEM "Save(&S)\tCtrl+S", ID_FILE_SAVE
08. MENUITEM "Save as(&A)...", ID_FILE_SAVE_AS
09. MENUITEM SEPARATOR
10. MENUITEM "Print(&P)...\tCtrl+P", ID_FILE_PRINT
11. MENUITEM "Print Preview(&V)", ID_FILE_PRINT_PREVIEW
12. MENUITEM "Print Setting(&R)...", ID_FILE_PRINT_SETUP
13. MENUITEM SEPARATOR
14. MENUITEM "Recent Files", ID_FILE_MRU_FILE1, GRAYED
15. MENUITEM SEPARATOR
16. MENUITEM "Exit(&X)", ID_APP_EXIT
17. END
18. POPUP "Edit(&E)"
19. BEGIN
20. MENUITEM "Undo(&U)\tCtrl+Z", ID_EDIT_UNDO
21. MENUITEM SEPARATOR
22. MENUITEM "Cut(&T)\tCtrl+X", ID_EDIT_CUT
23. MENUITEM "Copy(&C)\tCtrl+C", ID_EDIT_COPY
24. MENUITEM "Paste(&P)\tCtrl+V", ID_EDIT_PASTE
25. END
26. POPUP "View(&V)"
27. BEGIN
28. MENUITEM "ToolBar(&T)", ID_VIEW_TOOLBAR
29. MENUITEM "StatusBar(&S)", ID_VIEW_STATUS_BAR
30. MENUITEM "Eject CD", ID_VIEW_FULLSCREEN
31. MENUITEM "Chinese", ID_MENU_CHANGE
32. END
33. POPUP "Help(&H)"
34. BEGIN
35. MENUITEM "About FullScreen(&A)...", ID_APP_ABOUT
36. END
37.END
修改完成后保存资源。
三、在 CMainFrame中加入变量CMenu m_englistmenu 和m_chinesemenu保存中英文菜单资源
加入变量enum Enum{e,c}m_current 保存当前菜单
四、由于默认为中文菜单在 CMainFrame::CMainFrame()中设置m_current=c;表示当前为中文菜单,在CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)中装入英文菜单资源
view sourceprint?
1.m_englistmenu.LoadMenu("IDR_MAINFRAME_ENGLISH");
2.HMENU m_hMenu=::GetMenu(this->m_hWnd); // 保存中文菜单
3.m_chinesemenu.Attach(m_hMenu);
五、加入菜单函数
view sourceprint?
01.void CMainFrame::OnMenuChange()
02.{
03. if(m_current==e)
04. {
05. SetMenu(&m_chinesemenu);
06. m_current=c;
07. }
08. else
09. {
10. SetMenu(&m_englistmenu);
11. m_current=e;
12. }
13.
14.}
编译运行程序您就可以获得一个具有英汉对照菜单的应用程序。
参考http://www.vckbase.com/index.php/wv/370
一、建立工程项目文件
选择语言为中文,其余采用默认,添加中英文切换菜单IDD_MENU_CHANGE
二、用文本形式打开资源文件,找到IDR_MAINFRAME的菜单文本内容如下:
view sourceprint?
01.IDR_MAINFRAME MENU PRELOAD DISCARDABLE
02.BEGIN
03. POPUP "文件(&F)"
04. BEGIN
05. MENUITEM "新建(&N)\tCtrl+N", ID_FILE_NEW
06. MENUITEM "打开(&O)...\tCtrl+O", ID_FILE_OPEN
07. MENUITEM "保存(&S)\tCtrl+S", ID_FILE_SAVE
08. MENUITEM "另存为(&A)...", ID_FILE_SAVE_AS
09. MENUITEM SEPARATOR
10. MENUITEM "打印(&P)...\tCtrl+P", ID_FILE_PRINT
11. MENUITEM "打印预览(&V)", ID_FILE_PRINT_PREVIEW
12. MENUITEM "打印设置(&R)...", ID_FILE_PRINT_SETUP
13. MENUITEM SEPARATOR
14. MENUITEM "最近文件", ID_FILE_MRU_FILE1, GRAYED
15. MENUITEM SEPARATOR
16. MENUITEM "退出(&X)", ID_APP_EXIT
17. END
18. POPUP "编辑(&E)"
19. BEGIN
20. MENUITEM "撤消(&U)\tCtrl+Z", ID_EDIT_UNDO
21. MENUITEM SEPARATOR
22. MENUITEM "剪切(&T)\tCtrl+X", ID_EDIT_CUT
23. MENUITEM "复制(&C)\tCtrl+C", ID_EDIT_COPY
24. MENUITEM "粘贴(&P)\tCtrl+V", ID_EDIT_PASTE
25. END
26. POPUP "查看(&V)"
27. BEGIN
28. MENUITEM "工具栏(&T)", ID_VIEW_TOOLBAR
29. MENUITEM "状态栏(&S)", ID_VIEW_STATUS_BAR
30. MENUITEM "弹出CD", ID_VIEW_FULLSCREEN
31. MENUITEM "英文", ID_MENU_CHANGE
32. END
33. POPUP "帮助(&H)"
34. BEGIN
35. MENUITEM "关于 FullScreen(&A)...", ID_APP_ABOUT
36. END
37.END
在此后加入英文菜单资源复制上述文本,把其中的中文改成英文,并作些改动
view sourceprint?
01.IDR_MAINFRAME_ENGLISH MENU PRELOAD DISCARDABLE
02.BEGIN
03. POPUP "File(&F)"
04. BEGIN
05. MENUITEM "New(&N)\tCtrl+N", ID_FILE_NEW
06. MENUITEM "Open(&O)...\tCtrl+O", ID_FILE_OPEN
07. MENUITEM "Save(&S)\tCtrl+S", ID_FILE_SAVE
08. MENUITEM "Save as(&A)...", ID_FILE_SAVE_AS
09. MENUITEM SEPARATOR
10. MENUITEM "Print(&P)...\tCtrl+P", ID_FILE_PRINT
11. MENUITEM "Print Preview(&V)", ID_FILE_PRINT_PREVIEW
12. MENUITEM "Print Setting(&R)...", ID_FILE_PRINT_SETUP
13. MENUITEM SEPARATOR
14. MENUITEM "Recent Files", ID_FILE_MRU_FILE1, GRAYED
15. MENUITEM SEPARATOR
16. MENUITEM "Exit(&X)", ID_APP_EXIT
17. END
18. POPUP "Edit(&E)"
19. BEGIN
20. MENUITEM "Undo(&U)\tCtrl+Z", ID_EDIT_UNDO
21. MENUITEM SEPARATOR
22. MENUITEM "Cut(&T)\tCtrl+X", ID_EDIT_CUT
23. MENUITEM "Copy(&C)\tCtrl+C", ID_EDIT_COPY
24. MENUITEM "Paste(&P)\tCtrl+V", ID_EDIT_PASTE
25. END
26. POPUP "View(&V)"
27. BEGIN
28. MENUITEM "ToolBar(&T)", ID_VIEW_TOOLBAR
29. MENUITEM "StatusBar(&S)", ID_VIEW_STATUS_BAR
30. MENUITEM "Eject CD", ID_VIEW_FULLSCREEN
31. MENUITEM "Chinese", ID_MENU_CHANGE
32. END
33. POPUP "Help(&H)"
34. BEGIN
35. MENUITEM "About FullScreen(&A)...", ID_APP_ABOUT
36. END
37.END
修改完成后保存资源。
三、在 CMainFrame中加入变量CMenu m_englistmenu 和m_chinesemenu保存中英文菜单资源
加入变量enum Enum{e,c}m_current 保存当前菜单
四、由于默认为中文菜单在 CMainFrame::CMainFrame()中设置m_current=c;表示当前为中文菜单,在CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)中装入英文菜单资源
view sourceprint?
1.m_englistmenu.LoadMenu("IDR_MAINFRAME_ENGLISH");
2.HMENU m_hMenu=::GetMenu(this->m_hWnd); // 保存中文菜单
3.m_chinesemenu.Attach(m_hMenu);
五、加入菜单函数
view sourceprint?
01.void CMainFrame::OnMenuChange()
02.{
03. if(m_current==e)
04. {
05. SetMenu(&m_chinesemenu);
06. m_current=c;
07. }
08. else
09. {
10. SetMenu(&m_englistmenu);
11. m_current=e;
12. }
13.
14.}
编译运行程序您就可以获得一个具有英汉对照菜单的应用程序。
参考http://www.vckbase.com/index.php/wv/370
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询