MFC EditControl的值不是私有成员

时间:2014-09-19 11:59:35

标签: c++ mfc

我有一个包含静态文本和编辑控件的对话框。在对话框控件类中,我有一个控制变量,用于在编辑框中设置初始值,以及一个int,当用户更改它时,它将具有编辑框的值。两者都是私有变量,但我没有得到整数变量的值。有没有办法在下面检测这个是示例代码库

class CYrdAuthorityPage : public CPropertyPage
{
    DECLARE_DYNAMIC(CYrdAuthorityPage)

public:
    CYrdAuthorityPage();
    virtual ~CYrdAuthorityPage();

// Dialog Data
    enum { IDD = IDD_YRD_AUTHORITY_DIALOG };


protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

    DECLARE_MESSAGE_MAP()
private:
    CEdit m_authctrl;
    int m_authval;
public:
    afx_msg void OnEnChangeAuthEdit();

};

IMPLEMENT_DYNAMIC(CYrdAuthorityPage, CPropertyPage)

CYrdAuthorityPage::CYrdAuthorityPage()
    : CPropertyPage(CYrdAuthorityPage::IDD)
{

}

CYrdAuthorityPage::~CYrdAuthorityPage()
{
}

void CYrdAuthorityPage::DoDataExchange(CDataExchange* pDX)
{
    CPropertyPage::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_AUTH_EDIT, m_authctrl);
    DDX_Text(pDX,IDC_AUTH_EDIT,m_authval);
}


/*BEGIN_MESSAGE_MAP(CYrdAuthorityPage, CPropertyPage)
    ON_EN_CHANGE(IDC_AUTH_EDIT, &CYrdAuthorityPage::OnEnChangeAuthEdit)
END_MESSAGE_MAP()*/

这里m_authval没有价值。我认为这可能是因为它是私有的但是公开也会产生相同的结果。我已设置编辑框以集中对齐文本。

由于

1 个答案:

答案 0 :(得分:1)

控件和int变量之间的数据交换不会神奇地发生。它在您调用UpdateData成员函数时发生。你有这个功能的电话吗?