【问题标题】:SetLocale vs Custom Data format on WindowsWindows 上的 SetLocale 与自定义数据格式
【发布时间】: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


    【解决方案1】:

    看看 MSDN 主题: “Using National Language Support”->“Working with Custom Locales”。 也可以试试 GetLocaleInfoEx。

    【讨论】:

    • 我不确定这对我有什么帮助。使用 GetLocaleInfoEx,我可以检索有关按名称指定的语言环境的信息,但之后我能做什么?如果我想检索小数分隔符,我如何在我的软件上设置它?我将尝试 GetLocaleInfoEx 看看我的代码中发生了什么...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多