在VC++的对话框资源模板中显示汉字1.4

Author: 李玉存 Date: 1999年 第2期 13版

    熟悉Visual C++编程的人知道,在基于中文的对话框资源模板中加入静态文本控制是很容易显示汉字的。但有时若对话框资源是由AppWixard自动创建的,这时生成的资源是基于英语的,所以其中的静态文本控制就不能显示汉字。由于AppWizard生成的资源文件Data.rc为一文本文件,于是我用Windows 95中的记事本打开它,经过分析才明白,原来对话资源IDD_DATA_FORM是定义在下面的定义体中的:
    //English(U.S.)resources
    #if!defined(AFC_RESOURCE_DLL)||defined(AFX_TARG_ENU)
    #ifdef_WIN32
    LANGUAGE LANG_ENGLISH,SUBLANG_ENGLISH_US
    #pragma code_page(1252)
    #endif//_WIN32
    … …
    #endif //English(U.S.)resources
    由于这是一个基于英语的资源定义,当然显示不出汉字来。于是我将对话框资源IDD_DATA_FORM的描述部分剪贴到剪切板中。然后在Data.rc中找到基于中文的定义体,如下所示:
    //Chinese(P.R.C)resources
    #if!defined(AFX_RESOURCE_DLL)||defined(AFX_TARG_CHS)
    #ifdef_WIN32
    LANGUAGE LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED
    #pragma code_page (936)
    #endif//_WIN32
    … …//插入到此处。
    #endif //Chinese(P.R.C.)resources
    将对话资源描述粘贴到定义体中,运行程序,汉字果然显示出来了!