我正在开发一个C++/MFC Windows应用程序,我希望全世界的数字、日期等格式都是正确的。
例如:有些人喜欢用“,”作为小数点的分隔符,另一些人则喜欢使用点,以此类推。
在启动windows应用程序时,我开始使用locals命令:
setlocale(LC_ALL, "" );这适用于语言格式,因为当第二个参数为空时,此函数向操作系统询问本地设置以获取数字、日期等。
这适用于Region->格式,但不适用于“附加设置”:例如,如果您的系统格式是英语(美国),就像在图像中一样,并且您通过格式列表使用另一种语言使用不同的数字格式对其进行了更改,那么它将适用于我的应用程序。
对于“作品”,我的意思是文本框、ListCtrl等中的数字使用正确的格式来表示小数符号、数字分组等。

但是如果你在“附加设置”中更改了诸如小数点分隔符之类的单一格式,而没有更改表单语言,它就不能工作。
在本例中,当我使用"setlocale“函数时,数字的格式与语言相同;它不遵循自定义规则。其他程序,如Microsoft Excel,能够显示遵循自定义规则的数字,
谢谢
这是附加设置对话框:

发布于 2017-03-11 00:58:56
https://stackoverflow.com/questions/42676479
复制相似问题