我有一个包含静态文本和编辑控件的对话框。在对话框控件类中,我有一个控制变量,用于在编辑框中设置初始值,以及一个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没有价值。我认为这可能是因为它是私有的但是公开也会产生相同的结果。我已设置编辑框以集中对齐文本。
由于
答案 0 :(得分:1)
控件和int变量之间的数据交换不会神奇地发生。它在您调用UpdateData成员函数时发生。你有这个功能的电话吗?