如何实现VC界面的多语言支持。 就是说可以选择中文显示还是英文显示。比如某个static控件,可以选择英文还是中文。谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 做两个单选按钮,一个显示中文一个显示英文,分别填上代码比如中文的填GetDlgItem(控件名)->SetWindowText(_T("中文"));英文的GetDlgItem(控件名)->SetWindowText(_T("English")); 写个language.ini的配置文件,将所需要的ID和字符串全部写在里面;打开程序的时候加载所有字符串,并作为全局设置;每个界面在初始化的时候读取这些设置;maxthon就是这样做的 这两条值得参考: 每种语言一个dll 就是把用到的所有字符串都定义为字符串资源。然后根据用户的选择从不同版本的字符串资源加载 http://blog.vckbase.com/arong/archive/2006/05/24/20295.html http://www.vckbase.com/document/viewdoc/?id=663这个例子还不错 代码中所有需要多语化的常量字符串,全部用宏来替换,在换用多语言方案时,可以通过修改宏来实现而不需要修改代码,例如:AfxMessageBox(_T("提示信息"), MB_OK);printf(_T("现在是%s 时间%u 点%u 分"), _T("北京"), 12, 30);要替换为:AfxMessageBox(STRING(IDS_PROMPT_INFORMATION, "提示信息"), MB_OK);printf(STRING(IDS_CURRENT_TIME, "现在是%s 时间%u 点%u 分"), STRING(IDS_BEIJING, "北京"), 12, 30);宏的参考定义如下:#define STRING(STRING_ID, DEFAULT) MultiLanguage::GetString((int)STRING_ID)这里为每条常量字符串定义了一个 ID,通过传递 ID 参数调用 MultiLanguage::GetString 函数来取得当前语言的字符串指针。 窗口还未被销毁而m_hwnd却被释放了,可能是什么原因?请问!! 请教:如何更改标题栏的样子? 在数据库查询时,异常被捕获但得不到异常信息,为什么? 网络编程疑问(一) 显示问题 请教高手一个超级难题(在线等候) 串口通讯 (超级简单问题)请教高手,我怎么能让我的小键盘在开机时,就能亮着小键盘灯,不用摁下“Num Lock”就能使用。 我从微软下载的PlatFormSDK,里面的帮助文档是hxt格式的,应该用什么打开? 多线程 socket 需要同步吗? 关于函数的返回值 如何在RichEdit中实现超链接 xp系统下,用IActiveDesktop得到jpg类型墙纸出错.
英文的GetDlgItem(控件名)->SetWindowText(_T("English"));
打开程序的时候加载所有字符串,并作为全局设置;
每个界面在初始化的时候读取这些设置;maxthon就是这样做的
每种语言一个dll
就是把用到的所有字符串都定义为字符串资源。然后根据用户的选择从不同版本的字符串资源加载
printf(_T("现在是%s 时间%u 点%u 分"), _T("北京"), 12, 30);要替换为:AfxMessageBox(STRING(IDS_PROMPT_INFORMATION, "提示信息"), MB_OK);
printf(STRING(IDS_CURRENT_TIME, "现在是%s 时间%u 点%u 分"), STRING(IDS_BEIJING, "北京"), 12, 30);宏的参考定义如下:
#define STRING(STRING_ID, DEFAULT) MultiLanguage::GetString((int)STRING_ID)这里为每条常量字符串定义了一个 ID,通过传递 ID 参数调用 MultiLanguage::GetString 函数来取得当前语言的字符串指针。