酒类招商网站大全,推广网站链接怎么做,扬中新闻头条新闻,app介绍模板DoDataExchange由框架调用#xff0c;作用是交互并且验证对话框数据#xff0c;主要由(DDX) 和 (DDV)宏实现。 永远不要直接调用这个函数#xff0c;而是通过UpdateData(TRUE/FALSE)实现控件与变量之间值的传递。  
当然你也可以不使用DoDataExchange而完成控件与变量之间值…DoDataExchange由框架调用作用是交互并且验证对话框数据主要由(DDX) 和 (DDV)宏实现。 永远不要直接调用这个函数而是通过UpdateData(TRUE/FALSE)实现控件与变量之间值的传递。  
当然你也可以不使用DoDataExchange而完成控件与变量之间值的传递如通过GetWindowText和SetWindowText等等函数完成String变量与Edit控件之间的数据交互。 
DDX/DDV 
通过使用ClassWizard向对话类添加成员变量你可以利用ClassWizard所提供的高效特征为对话数据交换和对话数据验证自动生成源代码也就是人们所熟知的DDX/DDV。 
数据交换和验证仅仅应用于为之选定了Value类别的成员变量。也就是CStringBOOL数字COleDateTime或COLeCurrency。 
对话框数据交换负责数据在控件中的进出。当对话首次出现的时候每个控件窗口自动用相应的成员变量的值进行初始化。当用户通过单击OK按钮或通过按Enter键关闭对话的时候该控件无论是包含哪一个值或文本都将被复制回该变量。 
对话数据验证可以确保值落在规定的限制之内。交换和验证机制都是由MFC框架提供的。每个函数都有一个前缀DDX_或DDV_来把它作为数据交换或数据验证函数来标识。 
1. 对话数据交换DDX    常见的对话数据交换函数 
1交换函数DDX_CBIndex获得/设置的数据类型int应用于控件Combobox 2交换函数DDX_CBString获得/设置的数据类型Cstring应用于控件Combobox 3交换函数DDX_CBStringExact 获得/设置的数据类型Cstring应用于控件Combobox 4交换函数DDX_Check 获得/设置的数据类型intCheck应用于控件box 5交换函数DDX_DateTimeCtrl 获得/设置的数据类型Ctime应用于控件Datetimepicker 6交换函数DDX_LBIndex获得/设置的数据类型int应用于控件List box 7交换函数DDX_LBString获得/设置的数据类型CString应用于控件Listbox 8交换函数DDX_LBStringExact获得/设置的数据类型CString应用于控件List box 9交换函数DDX_MonthCalCtrl 获得/设置的数据类型Ctime应用于控件Month calendar 10交换函数DDX_Radio获得/设置的数据类型int应用于控件Radio button 11交换函数DDX_Scroll 获得/设置的数据类型int 应用于控件Scroll bar 12交换函数DDX_Text获得/设置的数据类型CString  or numerical(BYTE,short,int,UINT,long,etc.)应用于控件Edit control 
在所有的数据交换函数之中该函数是独一无二的它只应用于一组控件而不是一个控件。DDX_Radio返回一个int值用来指示用户打开了组中的哪个按钮0代表组中的第一个按钮1代表第二个按钮以此类推。值-1的意思是小组中的所有按钮都是清除的。你可以调用DDX_Radio来确定单个单选按钮的状态假如它是组中的唯一一个按钮。在这种情况下返回值0的意思是按钮是打开的值-1意为按钮是关闭的。 建立一个单选按钮通常在对话编辑器中进行我们一会儿就能看到。 
MFC提供了大量的对话数据交换函数它们可以在对话类中的控件成员变量之间移动数据。除了所列的常见函数之外还有用于记录集数据和由ActiveX控件返回的数据的特殊交换函数。DDX_Control函数可以为几种不同类型的控件传输数据  例如Animate和IPAddress。 
2.对话数据验证DDV对话数据验证函数 
它们仅仅应用于接受用于从键盘输入数据的控件成员变量。换言之就是编辑控件和组合框。 对话数据验证函数 1DDV_MinMaxByte 指定限制范围内的一个BYTE值。 2DDV_MinMaxInt 指定限制范围内的一个int值。 3DDV_MinMaxUInt 指定限制范围内的一个UNIT值。 4DDV_MinMaxLong 指定限制范围内的一个long值。 5DDV_MinMaxDWord 指定限制范围内的一个DWORD值。 6DDV_MinMaxFloat 指定限制范围内的一个float值。 7DDV_MinMaxDouble 指定限制范围内的一个double值。 8DDV_MaxCharsCString字符串的长度不能超过指定的最大长度。     当你为编辑控件或组合框添加成员变量然后在Member Variable选项卡中的Control IDs框中选择控件的时候两个提示之一将会出现在该选项卡的底部。究竟出现哪一个提示取决于变量所具有的是数字数据还是文字数据在任一种情况下都要输入用于验证的变量限制值。     除了一个对话数据验证函数之外所有函数都监视数值数据以确保由用户输入的值落在指定的上下限之间。     例外是DDV_MaxChars函数它用来验证键入到编辑控件或组合框中的字符数不超过给定的最大值。与交换函数不同验证函数仅仅在对话关闭的时候起作用而不在它刚出现的时候起作用。      
如果输入到一个控件的值落到了指定的限制之外那么该控件的验证函数将显示一个消息框以通知用户出了问题。当消息框被关闭的时候出问题的控件将具有一个焦点提示用户重新输入数据。除非所有的数据验证函数都满足了否则用户不能够通过单击OK来关闭对话。