60楼#
发布于:2003-01-11 18:58
离3000好远啊。
|
|
61楼#
发布于:2003-01-11 19:00
你今天要数到3000?!
|
|
|
62楼#
发布于:2003-01-11 19:00
灌22
|
|
63楼#
发布于:2003-01-11 19:03
这样数数灌太浪费时间了。。。
|
|
|
64楼#
发布于:2003-01-11 19:04
你今天要数到3000?! 有什么问题吗? 我上了一首MC HotDog的歌。 |
|
65楼#
发布于:2003-01-11 19:06
这样数数灌太浪费时间了。。。 那应该。。。? 直接引用? :D |
|
66楼#
发布于:2003-01-11 19:10
2000如何?3000又怎样?何必为了那个数字浪费时间?
|
|
|
67楼#
发布于:2003-01-11 19:12
2000如何?3000又怎样?何必为了那个数字浪费时间? 被你一说我忽然想出家了。 :D :D |
|
68楼#
发布于:2003-01-11 19:14
那我是灌还是不灌呢?
灌还是不灌,这是个问题。 :D |
|
69楼#
发布于:2003-01-11 19:23
灌也灌得有点意义吗 :D
|
|
|
70楼#
发布于:2003-01-11 19:24
那我怎么灌才有意义呀?
|
|
71楼#
发布于:2003-01-11 19:25
From: \"zyq\" <qige2001@hotmail.com>
Subject: Re: 如何实现程序的多国语言动态改变? Date: 2003年1月9日 23:53 给你一篇文章: VC中多语菜单的实现 河南商检局 陈胜利 ---- 随着Internet的发展,软件的国际化不可避免。一种软件可能被很多国家的人使 用, 如给您的软件加上多种语言的菜单,不但给使用者带来很多方便,也为您的软件的推广 带 来很多便利。比如给您开发的中文软件,加上一个英语或日语菜单,对母语为英语和日 语 的朋友将会带来很多便利。VC中实现多语菜单非常容易,下面以英汉对照菜单为例说明 多 语菜单实现的方法。 ---- 一、建立工程项目文件 ---- 采用VC中应用程序向导(AppWizard)建立一个工程项目:Menu。在可选者项中, 选 者单文档,语言为汉语,其余选者默认项。此时编译运行得到一个具有中文菜单的应用 程 序。下面将加入英文菜单到应用程序中。 ---- 二、修改建立菜单资源 ---- 在资源编辑器中打开菜单资源编辑器编辑IDR_MAINFRAME菜单资源,加入改变菜单 的 开关命令项。在查看项下加入菜单: ---- ID: ID_MENU_CHANGE Caption 英语(&E) ---- 关闭资源编辑器。用Windows的写字板打开项目下的资源文件Menu.rc找到如下内 容: IDR_MAINFRAME MENU PRELOAD DISCARDABLE BEGIN POPUP \"文件(&F)\" BEGIN MENUITEM \"新建(&N)\\tCtrl+N\", ID_FILE_NEW MENUITEM \"打开(&O)...\\tCtrl+O\", ID_FILE_OPEN MENUITEM \"保存(&S)\\tCtrl+S\", ID_FILE_SAVE MENUITEM \"另存为(&A)...\", ID_FILE_SAVE_AS MENUITEM SEPARATOR MENUITEM \"打印(&P)...\\tCtrl+P\", ID_FILE_PRINT MENUITEM \"打印预览(&V)\", ID_FILE_PRINT_PREVIEW MENUITEM \"打印设置(&R)...\", ID_FILE_PRINT_SETUP MENUITEM SEPARATOR MENUITEM \"最近文件\", ID_FILE_MRU_FILE1, GRAYED MENUITEM SEPARATOR MENUITEM \"退出(&X)\", ID_APP_EXIT END POPUP \"编辑(&E)\" BEGIN MENUITEM \"撤消(&U)\\tCtrl+Z\", ID_EDIT_UNDO MENUITEM SEPARATOR MENUITEM \"剪切(&T)\\tCtrl+X\", ID_EDIT_CUT MENUITEM \"复制(&C)\\tCtrl+C\", ID_EDIT_COPY MENUITEM \"粘贴(&P)\\tCtrl+V\", ID_EDIT_PASTE END POPUP \"查看(&V)\" BEGIN MENUITEM \"工具栏(&T)\", ID_VIEW_TOOLBAR MENUITEM \"状态栏(&S)\", ID_VIEW_STATUS_BAR MENUITEM \"英语\", ID_MENU_CHANGE END POPUP \"帮助(&H)\" BEGIN MENUITEM \"关于 Menu(&A)...\", ID_APP_ABOUT END END ---- 将上述内容复制到剪贴板中,然后拷贝一份到上述内容的下面,并作部分修改。 将I DR_MAINFRAME改为IDR_MAINFRAME_EN,其他汉语译成英语,并按英语菜单的习惯修改。 改后 的菜单资源如下: IDR_MAINFRAME_EN MENU PRELOAD DISCARDABLE BEGIN POPUP \"&File\" 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...\\tCtrl+P\", ID_FILE_PRINT MENUITEM \"Print Pre&view\", ID_FILE_PRINT_PREVIEW MENUITEM \"&Printer Reset...\", ID_FILE_PRINT_SETUP MENUITEM SEPARATOR MENUITEM \"Re¢ File\", ID_FILE_MRU_FILE1, GRAYED MENUITEM SEPARATOR MENUITEM \"E(&X)it\", ID_APP_EXIT END POPUP \"(&E)dit\" BEGIN MENUITEM \"&Undo\\tCtrl+Z\", ID_EDIT_UNDO MENUITEM SEPARATOR MENUITEM \"Cu&T\\tCtrl+X\", ID_EDIT_CUT MENUITEM \"&Copy\\tCtrl+C\", ID_EDIT_COPY MENUITEM \"&Paste\\tCtrl+V\", ID_EDIT_PASTE END POPUP \"&View\" BEGIN MENUITEM \"&Tool bar\", ID_VIEW_TOOLBAR MENUITEM \"&Status bar\", ID_VIEW_STATUS_BAR MENUITEM \"&Chinese\", ID_MENU_CHANGE END POPUP \"&Help\" BEGIN MENUITEM \"&About Menu...\", ID_APP_ABOUT END END ---- 保存修改后的资源文件。把资源文件重新调入资源编辑器,可发现已有两套菜单 资源 。如有什么不合适的地方可在资源编辑器中做进一步修改。 ---- 三、加入菜单变量到程序中 ---- 由于菜单附属于主窗口,所以应在CMainFrame类中加入相关变量: public: CMenu m_pEnglish;\\\\用于保存英语菜单资源 CMenu m_pChinese;\\\\用于保存汉语菜单资源 enum{C,E}m_eMenu;\\\\标示现在使用的是英语 菜单还是汉语菜单,C--汉语,E--英语 ---- 四、初始化变量 需要初始化的变量仅有一个m_eMenu。由于开始时菜单使用默认 中文 菜单,所以在CMainFrame构造函数中初始化: CMainFrame::CMainFrame() { // TODO: add member initialization code here m_Menu=C; } ---- 五、调入保存菜单资源 ---- 在主窗口的OnCreate函数中,初始化并保存菜单资源: int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { ....... 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(); } ---- 编译运行程序您就可以获得一个具有英汉对照菜单的应用程序。 ---- 八、结束语 ---- 上述例子虽然只给除了两种语言的菜单,但很容易编出多语言菜单的应用程序。 由于 各种语言菜单实际上是不同的菜单资源,所以,在同一应用程序中,可以使用不同的菜 单 。如共享软件中注册的用户使用一种菜单,未注册的用户使用另一种菜单,而不必发行 多 个版本和多次安装,从而使注册变得容易并能得到软件更多的功能。 象这样灌? :D |
|
72楼#
发布于:2003-01-11 19:34
随你了,每个人想法不同,我只是表达了我的看法;
灌不灌,怎样灌,什么事有意义,也许我们的看法都不同, 你自己开心就好了 :) |
|
|
73楼#
发布于:2003-01-11 19:38
你说的认真了,我随便说说呢。
|
|
74楼#
发布于:2003-01-11 19:41
又灌。 :D
|
|
75楼#
发布于:2003-01-11 19:45
还灌。
|
|
76楼#
发布于:2003-01-11 19:48
没什么烦心事吧?
要不然过来,我请你吃饭 ;) |
|
|
77楼#
发布于:2003-01-11 19:49
算了,不灌了,要回家了。吃饭去了。
|
|
78楼#
发布于:2003-01-11 19:58
呵呵,我也吃饭去了 :)
|
|
|
79楼#
发布于:2003-01-12 10:02
这几天人少多啦 :D
|
|