MFC对话数据交换(DDX)逗号改为点为十进制

时间:2011-05-18 14:33:42

标签: c++ mfc locale

要初始化对话框中的控件并收集用户输入,我正在使用DDX。如何更改程序以使用逗号而不是点来显示浮点数(最好不更改区域设置)?

该程序具有“C”语言环境集,如果我更改语言环境,我必须注意每个atof,sprintf操作(用于获取/设置浮点数的库,在底层mysql数据库中,需要字符串小数点作为点。)

到目前为止,我只想改变语言环境,然后使用带有imbue的stringstream(找到here),但也许有可能不改变语言环境。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

这是一个特定于语言环境的事情,您可能需要使用语言环境来处理它的更改。

请注意,DDX用于初始化控件对象,以便您的控件变量成员声明与您在资源文件中选择的值保持同步,或者在初始化控件所在的对话框时执行的操作。

修改:某些控件如CComboBoxCListBox都有SetLocale方法,但我从未使用它,所以不确定它的效果如何,并且它不适用于所有控件。< / p>