MFC 对话框数据交换 (DDX) 逗号改为小数点

Posted

技术标签:

【中文标题】MFC 对话框数据交换 (DDX) 逗号改为小数点【英文标题】:MFC Dialog Data Exchange (DDX) comma instead point as decimal 【发布时间】:2011-05-18 14:33:41 【问题描述】:

为了初始化对话框中的控件并收集用户输入,我使用了DDX。如何更改程序以用逗号而不是点显示浮点数(最好不更改语言环境)?

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

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

感谢您的帮助!

【问题讨论】:

【参考方案1】:

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

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

编辑:像 CComboBoxCListBox 这样的一些控件有一个 SetLocale 方法,但我从未使用过它,所以不确定它的效果如何,而且它并非在所有控件上都可用。

【讨论】:

以上是关于MFC 对话框数据交换 (DDX) 逗号改为小数点的主要内容,如果未能解决你的问题,请参考以下文章

MFC 中的更新数据

MFC DDX_Control 与 DDX_Text

VS2015上,使用C++MFC对话框编辑定义了变量之后,没生成DDX_Text调用语句

MFC标签控件CTabCtrl

如何在 MFC 的功能区文本框中实现数据验证

MFC 丢失 Unicode 文本