给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的在对话框中进行数据交换和数据检查,过去的都会过去,迎接崭新的开始,释放更美好的自己。
【 tulaoshi.com - 编程语言 】
MFC提供两种方法在对话框中进行数据交换和数据检查(Dialog data exchange/Dialog data validation),数据交换和数据检查的思想是将某一变量和对话框中的一个子窗口进行关联,然后通过调用BOOL UpdateData( BOOL bSaveAndValidate = TRUE )来指示MFC将变量中数据放入子窗口还是将子窗口中数据取到变量中并进行合法性检查。
在进行数据交换时一个子窗口可以和两种类型的变量相关联,一种是控件(Control)对象,比如说按钮子窗口可以和一个CButton对象相关联,这种情况下你可以通过该对象直接控制子窗口,而不需要象上节中讲的一样使用GetDlgItem(IDC_CONTROL_ID)来得到窗口指针;一种是内容对象,比如说输入框可以和一个CString对象关联,也可以和一个UINT类型变量关联,这种情况下你可以直接设置/获取窗口中的输入内容。
而数据检查是在一个子窗口和一个内容对象相关联时在存取内容时对内容进行合法性检查,比如说当一个输入框和一个CString对象关联时,你可以设置检查CString的对象的最长/最小长度,当输入框和一个UINT变量相关联时你可以设置检查UINT变量的最大/最小值。在BOOL UpdateData( BOOL bSaveAndValidate = TRUE )被调用后,合法性检查会自动进行,如果无法通过检查MFC会弹出消息框进行提示,并返回FALSE。
设置DDX/DDV在VC中非常简单,ClassWizard可以替你完成所有的工作,你只需要打开ClassWizard并选中Member Variables页,如图,<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
你可以看到所有可以进行关联的子窗口ID列表,双击一个ID会弹出一个添加变量的对话框,如图,
填写相关的信息后按下确定按钮就可以了。然后选中你刚才添加的变量在底部的输入框中输入检查条件,如图。
下面我们看一个例子,对话框上的子窗口如图设置,各子窗口的ID和关联的变量如下表:
ID
关联的变量
作用
IDC_CHECK_TEST
BOOL m_fCheck
检查框是否被选中
IDC_RADOI_TEST_1
int m_iSel
当前选择的圆形按钮的索引
IDC_COMBO_TEST
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)CString m_szCombo
组合框中选中的文本或是输入的文本
IDC_EDIT_TEST
CString m_szEdit
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)
来源:http://www.tulaoshi.com/n/20160219/1600644.html
看过《在对话框中进行数据交换和数据检查》的人还看了以下文章 更多>>