

...{

CDialog::DoDataExchange(pDX);

//{{AFX_DA

DDX_Control(pDX,

DDX_LBString(pDX,

DDX_CBString(pDX,

DDX_Check(pDX,

DDX_Text(pDX,

DDX_Radio(pDX,

DDX_Text(pDX,

DDX_Radio(pDX,

DDX_Text(pDX,

DDV_MinMaxUInt(pDX,

//}}AFX_DA

}

读者可以看出,该函数中的代码是由ClassWizard自动加入的。DoDataExchange只有一个参数,即一个CDataExchange对象的指针pDX。在该函数中调用了DDX函数来完成数据交换,调用DDV函数来进行数据有效检查。
当程序需要交换数据时,不要直接调用DoDataExchange函数,而应该调用CWnd::UpdateData。UpdataData函数内部调用了DoDataExchange。该函数只有一个布尔型参数,它决定了数据传送的方向。调用UpdateData(TRUE)将数据从对话框的控件中传送到对应的数据成员中,调用UpdateData(FALSE)则将数据从数据成员中传送给对应的控件。
在缺省的CDialog::On

VC中的DoDataExchange
怎么设置控件和变量关联呢?
假如在对话框中加入一个picture控件的话
1.导入图片
2.拉picture控件到对话框上,设置属性,Type改为Bitmap,image选择导入的图片,ID一定要修改,不能为默认的IDC_Static,否则下面将做的Classwizard将不出现此控件ID。
3.ClassWizard中选择member variable Category选择 Control加入相应的CStatic变量 。
4.此时到DoDataExchange看,增加相应的数据交换语句,我的是DDX_Control(pDX, IDC_bt, m_bt);
本文介绍了VC++中对话框的数据交换机制DoDataExchange,并详细解释了如何使用ClassWizard设置控件与变量之间的关联,包括导入图片及使用CStatic变量进行数据交换的具体步骤。
914

被折叠的 条评论
为什么被折叠?



