如何从 VS2008 中的 C++ MFC 对话框中的日期/时间小部件中提取数据

Posted

技术标签:

【中文标题】如何从 VS2008 中的 C++ MFC 对话框中的日期/时间小部件中提取数据【英文标题】:How do you extract data from a Date/Time widget from a C++ MFC dialog in VS2008 【发布时间】:2010-04-20 19:11:13 【问题描述】:

这是一个相当基本的问题,但我无法从 VS6->VS2008 中找到任何 from->to 指南。我有一个包含各种类型控件的对话框,我发现了通过对话框编辑器上的“属性”对话框自动生成 OnBnClickedMyFooBarButtonHere() 方法的方法。

我还可以使用 CWnd::GetDlgItemText(int ,CString &) 来提取文本,并使用奇怪的参数化 GetDlgItemInt(int, bool*, bool) 来提取有符号整数,但是对于 Date 或真的没有其他选择吗?时间值以外的

手动添加类向导在 VS6 中使用的所有 DDX_ 废话 使用 GetDlgItemText 然后解析它给我的任何东西?

有标准的方法吗?

过去我做过“DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER2, m_TimePicker);”在DoDataExchange覆盖中,没有直接类比似乎有点奇怪。

【问题讨论】:

【参考方案1】:

您以前使用什么控件来获取日期和时间?从本质上讲,任何 32 位 ActiveX 控件都应该可以(以几乎相同的方式)与较新版本的 VS 一起使用。

【讨论】:

对不起,如果我不清楚。过去,类向导为将对话框元素绑定到类变量提供了一个相当方便的接口,现在我们似乎已经失去了该接口,我试图弄清楚处理非文本/非文本的标准方法是什么整数数据是。考虑到似乎 Ints 和 Text 都不需要重写 DoDataExchange 方法。 您仍然拥有几乎相同的能力来将控件绑定到变量 - 只是不太方便(尽管您可能更喜欢 VS 2010,它恢复了 ClassWizard)。在 VS 2008 中,您通常右键单击对话框中的控件,单击“添加变量...”并添加一个变量,就像在 VS 6 中使用 ClassWizard 一样。 啊……它在那里……知道这是我所缺少的简单的东西。即使指定了“VS2008”,Google 也制作了数千条关于如何查找类向导的说明。

以上是关于如何从 VS2008 中的 C++ MFC 对话框中的日期/时间小部件中提取数据的主要内容,如果未能解决你的问题,请参考以下文章

VS 2008 MFC - 删除 MFC 处理程序

vs2008 mfc 如何在对话框中加入一个menu

对话框窗口中的消息框(VS 2012,MFC C++)

DevExpress控件在VS2008上如何使用?为啥我建立了MFC的对话框程序,那些DevExpress控件不能使用?是灰色

将 VS6 MFC 对话框应用程序外观升级到 VS2008

MSVS 2008 如何MFC添加控件?