小弟最近需要利用vc6 mfc写一个同时支持中韩两国文字的程序。这些多国文字会出现中实际代码中,也会被作为按钮的文本出现,还会被存储在文件中被处理。

我的操作系统是 windows xp sp2英文版
    开发平台是 vs 6 英文版
区域和语言选项中 Standards and formats为 chinese(RPC)
Location 为 China我首先用向导生成了一个MFC.exe程序
然后设置了下列属性
Project Setting-> c/c++ > Preprocessor definitions 已加入 _UNICODE,UNICODE
Project Setting-> Link > output > Entry-point symbol >已加入 wWinMainCRTStartup运行程序,一切正常。
然后我试图在代码中输入韩文,可是出现一堆?代替我输入的韩文。开始我怀疑是字体的问题,所以我尝试通过注册表将vs6的字体改成 Arial Unicode MS ,可是重新启动后发现韩文依然显示为问号。
接着我又尝试用记事本打开源文件然后输入包含韩文的目标代码,再保存成unicode格式的文件。这样用记事本打开时可以显示韩文,可是在文件重新被导入vc6环境时,出现如下错误:
'C:\*****.cpp'
The file is Unicode text and cannot be read.  所以请教牛人的第一个问题是,在英文系统下,如何使VS6编辑界面同时支持中文输入和韩文输入?我遇到的另一个问题是我不会设置我的button,使之同时支持中韩两国语言。在我的窗体设计状态时,按钮可以显示中文,但不能显示韩文。 当我将系统区域和语言选项中的 Standards and formats设为 chinese(RPC)后运行程序时,按钮上的中文虽然可以显示但是韩文却依然?号。当我将 Standards and formats 改为 korean 运行时,韩文依然不可以显示,并且连中文也显示乱码了。请教牛人的第二个问题是在英文系统下如何让 BUTTON 同时显示中文和韩文。
 小弟在这个程序中一开始就碰壁,而且还一身灰。郁闷不断,恳盼达人相助!感激不尽!!

解决方案 »

  1.   

    你的对话框资源也应该是Unicode的,同时使用Unicode版的控件
      

  2.   

    在ResourceView中,找到你button所在的对话框ID,在其上点右键打开属性,把语言设为“中立”的,既不能是chinese,也不能是korea
      

  3.   

    做2个 资源dll吧 应该可以解决的
      

  4.   

    首先如果要实现支持多国语言,那么在代码中就不要出现与语言的字符串。解决方法:
    作成多个资源DLL,在你的程序中Load此DLL。
    把所有与语言相关的字符串全部定义到字符串表中,
    例如:Button上想显示“中文”和“韩文”
    DLL1:
    IDS_BOTTON_INFO     “中文”DLL2:
    IDS_BOTTON_INFO     “韩文”如上使用相同的IDS_BOTTON_INFO
    在程序中使用CString::LoadString取得数据后,动态修改按钮上的显示信息