我想使用MFC应用程序在visual studio 2010上制作计算器。为此我使用了一个对话框来创建计算器并添加按钮和编辑框。我们知道编辑框用作输入。所以我想把输入作为浮点输入。这就是下面的句子:
有一句话:首先选择两个编辑框并将它们放在对话框上。使用“视图”菜单中的“类向导”将每个类连接到浮点数,值为number1或number2。
编辑框在那里。现在如何将它们连接到浮点数,值为1?该程序是什么?
由于
答案 0 :(得分:1)
如果我正确理解您的问题,您希望将编辑框绑定到对话框的float
成员变量。这称为dialog data exchange。在这个答案中,我将尝试解释如何使用代码实现这一点(它应该比教授类向导更有帮助。)
基本上,您在对话框中定义了两个float
成员变量及其访问者:
class CYourDialog : CDialog
{
// ...
public:
float GetNumber1() const {
return m_number1;
}
void SetNumber1(float val) {
m_number1 = val;
}
float GetNumber2() const {
return m_number2;
}
void SetNumber2(float val) {
m_number2 = val;
}
private:
float m_number1;
float m_number2;
};
然后,您覆盖对话框的DoDataExchange()方法,并从那里调用DDX_Text()以将成员变量绑定到控件:
void CYourDialog::DoDataExchange(CDataExchange *dx)
{
CDialog::DoDataExchange(dx);
DDX_Text(dx, IDC_NUMBER1_CONTROL_ID, m_number1);
DDX_Text(dx, IDC_NUMBER2_CONTROL_ID, m_number2);
}
从那里,MFC框架将在对话框初始化时使用成员变量的值自动填充编辑框,并在单击OK
按钮时使用编辑框的值更新成员变量。这是一件好事,因为您只需要读取和写入这些成员变量,而不是直接操作编辑框。