【发布时间】:2017-07-29 07:47:31
【问题描述】:
我正在开发一个 C++/MFC Windows 应用程序,我希望数字、日期等的格式在世界范围内都是正确的。
示例:有人喜欢用“,”分隔小数,有人喜欢用点,等等。
我开始在我的 Windows 应用程序启动时放置 locals 命令:
setlocale(LC_ALL, "" );
这适用于语言格式,因为当第二个参数为空时,此函数会向操作系统询问数字、日期等的本地设置。
这适用于区域-> 格式,但不适用于“附加设置”:例如,如果您的系统格式是图像中的英语(美国),并且您通过格式列表使用另一种语言更改它数字的不同格式,它适用于我的应用程序。
对于“作品”,我的意思是 texbox、ListCtrl 等内部的数字使用正确的小数符号、数字分组等格式。
但是,如果您进入“附加设置”并更改小数点分隔符等单一格式而不更改格式语言,它将不起作用。
在这种情况下,当我使用“setlocale”函数时,数字的格式与语言相同;它不遵循自定义规则。其他程序,如 Microsoft Excel,能够按照自定义规则显示数字,
如何在我的软件上做同样的事情? 如何获得正确的数字格式(语言格式+自定义设置)?
谢谢
【问题讨论】:
标签: c++ visual-studio-2013 mfc localization