1

我想使用 MFC 应用程序在 Visual Studio 2010 上制作一个计算器。为此,我使用了一个对话框来创建计算器并添加按钮和编辑框。众所周知,编辑框用作输入。所以我想将输入设为浮点输入。所以这就是下面的句子:

有一句话:先选两个编辑框,放在对话框上。使用 View 菜单中的 Class Wizard 将每个连接到一个浮点数、值 number1 或 number2 。

编辑框在那里。现在如何将它们连接到浮点数 1 ?程序是什么?

谢谢

4

1 回答 1

1

如果我正确理解您的问题,您希望将编辑框绑定到float对话框的成员变量。这称为对话数据交换。在这个答案中,我将尝试解释如何用代码来实现这一点(它应该比教授类向导更有帮助)。

基本上,您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单击按钮时使用编辑框的值更新成员变量。这是一件好事,因为您只需读取和写入这些成员变量,而不是直接操作编辑框。

于 2012-04-18T13:23:20.640 回答