使用UNICODE编程,其中用到了MessageBox输出中文汉字。但是拿到日文系统下,发现MessageBox输出的全是日文汉字,虽然也能看出来,但是感觉总是怪怪的。
而且他诸如按钮、Label等等上面的信息全是简体中文。
吾百思而不得其解,求助于此。附尝试过的代码形式:
1、
MessageBoxW(_T("配置文件和工程路径不能为空!"),_T("注意"),MB_OK);
2、
CString csText = _T("配置文件和工程路径不能为空!");
MessageBoxW(csText ,_T("注意"),MB_OK);
3、
TCHAR tcText[] = _T("配置文件和工程路径不能为空!");
MessageBoxW(tcText,_T("注意"),MB_OK);

解决方案 »

  1.   

    莫非是控件和messagebox显示机制不同?
    首先确认下日文系统有没有简中字体?
    同样把这个字串显示在按钮上试试,如果效果不一致,那就说明messagebox字体和按钮字体不一致,可以重载个对话框,设置字体实现
      

  2.   

    Label上面要写上“配置文件”这些文字的,然后有个按钮。用户要看到“配置文件”,才知道这个按钮是针对“配置文件”。因此,面板上可以清晰地看到“配置文件”的字样,而且绝对是中文简体汉字。也就是说,系统字库肯定没问题。只是MessageBox显示出来的是日文汉字。
      

  3.   

    发现问题原因了。MessageBox的字体不跟着主窗体走,而是跟着系统的设定走的。
    主窗体因为设置的是宋体,所以可以看到简体中文。
    MessageBox的字体是系统默认的日文字体,因此显示的是日文汉字。最后没办法,加了个Dialog,模拟了一个MessageBox。