有关
DDX的更多信息参见《Visual C++程序员指南》中的“对话框数据交换和校验”和《Visual C++教程》中的“加入对话框”。
用例:
void Cdialog2Dlg::
DoDataExchange(
CDataExchange* pDX)
{
CDialog::DoDataExchange( pDX);
DDX_Control(pDX, IDC_EDIT, m_Edit);
//IDC_EDIT是树控件的ID,m_Edit是树控件对应类的对象
}
通俗的说:
{
CDialog::DoDataExchange( pDX);
DDX_Control(pDX, IDC_EDIT, m_Edit);
//IDC_EDIT是树控件的ID,m_Edit是树控件对应类的对象
}
通俗的说:
1.将变量m_Edit和控件IDC_EDIT进行绑定
2.通过修改变量的数值控制控件操作。
例如:
建立一个对话框类 CTestDlg,这个类有一个
成员变量CString m_string.在这个对话框上放上一个edit control(资源id是IDC_EDIT1),通过调用DDX_Control(,IDC_EDIT1,m_string)在IDC_EDIT1和m_string之间建立联系,调用
updateData()时,你在edit控件上输入的字符就会传到m_string中,这样就实现了控件和变量之间的数据传递。
void CFacePictureEvaluationDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_judge, m_imageevaluation);//add this }
ID为IDC_judge的实列编辑框添加变量m_imageevaluation,并且在头文件里申明为Cedit的成员变量。CEdit m_imageevaluation;
则下面语句
if (Face_quality>85) m_imageevaluation.SetWindowTextW(_T("合格"));和不加 DDX_Control时的
if (Face_quality>85) SetDlgItemText(IDC_judge, _T("合格")); 一样