zoukankan      html  css  js  c++  java
  • 菜鸟学做多语言版程序

    菜鸟学做多语言版程序

    --------MythLanguage 简化MFC程序的多语言版本开发。

     [DownLoad the Demo]

     [DownLoad the Demo]

    友情提示

    开发平台

    VC6.0

    MythLanguage 下载

    0.09.25

    作者

    力为 mythma@gmail.com

     

     

    实例

    MDI程序为例,实现步骤如下:

    一、初始工作

    1、按照VC的向导建立一个MDI程序MultiLanDemo,语言为中文。

    2、将MythMgr.hMythLanguageD.lib复制到MultiLanDemo目录下

    3、在stdafx.h中加入如下代码:

    #include "mythMgr.h"

    #pragma comment(lib, "MythLanguageD.lib")

     

     

    二、设置菜单语言

    4、在BOOL CMultiLanDemoApp::InitInstance()中加入初始化代码:

             // create main MDI Frame window

             CMainFrame* pMainFrame = new CMainFrame;

             if (!pMainFrame->LoadFrame(IDR_MAINFRAME))

                      return FALSE;

             m_pMainWnd = pMainFrame;

             // 初始化

             MythMgr::InitApp(AfxGetInstanceHandle());  

             // 设置主框架的菜单语言

             MythMgr::SetMenuLanguage(m_pMainWnd->GetMenu(), IDR_MAINFRAME);

             // 设置子框架的菜单语言

             MythMgr::SetMenuLanguage(CMenu::FromHandle(pDocTemplate->m_hMenuShared),

                                                                   IDR_MULTILATYPE);

        //.........

     

     

    三、设置对话框以及对话框上的控件的语言

    在此,我们修改About Dialog对话框的语言。

    5、映射About DialogWM_INITDIALOG消息,加入代码如下:

    BOOL CAboutDlg::OnInitDialog()

    {

             CDialog::OnInitDialog();

             // TODO: Add extra initialization here

             MythMgr::SetWindowLanguage(this, IDD); // 设置对话框的语言

     

     

             return TRUE; 

    }

     

     

    6、保存编译并运行。

    打开程序MultiLanDemo.exe的关于对话框,察看是否是中文的。

    关闭程序。

    此时可以发现在MultiLanDemo.exe的目录下有一个Config.ini文件和Language文件夹,

    Language文件夹下有一个Default.ini文件。

    说明:

    Config.ini:保存了当前选择的语言。

    Default.ini:存放的是程序的默认语言

    四、生成多语言版本

    7、在Language文件夹下复制Default.ini,生成它的一个副本。我们通过该这个副本,生成多国语言版本。在此,我们更改副本文件的名字为English.ini

    8、打开English.ini,修改内容。

    原文件内容

    修改后的内容

    [Setting]

    Language=Default

    [Menu]

    IDR_D128I0M-1_=文件(&F)

    IDR_D128I0M57600__=新建(&N)      Ctrl+N

    IDR_D128I1M57601__=打开(&O)...   Ctrl+O

    IDR_D128I3M57616__=最近文件

    IDR_D128I5M57665__=退出(&X)

    //.....

    [Setting]

    Language=English

    [Menu]

    IDR_D128I0M-1_=&File

    IDR_D128I0M57600__=&New    Ctrl+N

    IDR_D128I1M57601__=&Open...       Ctrl+O

    IDR_D128I3M57616__=Rencent Files

    IDR_D128I5M57665__=E&xit

    //........

    注意:Language=[语言名],语言名必须与文件名相同。例如,English.ini. Language=English

     

     

    9、打开config.ini文件,修改为:

    [Setting]

    Language=English

    10、大功告成。重新运行MultiLanDemo.exe。程序变成英文界面的了。

    是不是很简单呢?

  • 相关阅读:
    ORA01034:ORACLE not available 问题的解决方法
    利用Bulk Insert将Excel中的大批量数据入库
    【Hibernate】*.hbm.xml配置
    lib和dll文件的区别和联系
    oracle ,mysql总date的比较
    C++ Primer 4 CPP Note 1.5 类的简介
    C++ Primer 4 CPP Note 1.4 控制结构
    未找到方法: Dispose System.IO.Stream
    pragma comment的使用
    C++ Primer 4 CPP Note 2.1 基本内置类型
  • 原文地址:https://www.cnblogs.com/aiwz/p/6333165.html
Copyright © 2011-2022 走看看