标准对话框数据交换例程
本主题列出了用于常见 MFC 对话框控件的标准对话框数据交换 (DDX) 例程。
注意
标准对话框数据交换例程在头文件 afxdd_.h
中定义。 但是,应用程序应包含 afxwin.h
。
DDX 函数
名称 | 描述 |
---|---|
DDX_CBIndex |
初始化或检索组合框控件当前选择的索引。 |
DDX_CBString |
初始化或检索组合框控件编辑字段的当前内容。 |
DDX_CBStringExact |
初始化或检索组合框控件编辑字段的当前内容。 |
DDX_Check |
初始化或检索复选框控件的当前状态。 |
DDX_Control |
子类化对话框中的给定控件。 |
DDX_DateTimeCtrl |
初始化或检索日期和时间选取器控件的日期和/或时间数据。 |
DDX_IPAddress |
初始化或检索 IP 地址控件的当前值。 |
DDX_LBIndex |
初始化或检索列表框控件当前选择的索引。 |
DDX_LBString |
初始化或检索列表框控件中的当前选择。 |
DDX_LBStringExact |
初始化或检索列表框控件中的当前选择。 |
DDX_ManagedControl |
创建与控件的资源 ID 相匹配的 .NET 控件。 |
DDX_MonthCalCtrl |
初始化或检索月历控件的当前值。 |
DDX_Radio |
初始化或检索当前在单选控件组中选中的单选控件基于 0 的索引。 |
DDX_Scroll |
初始化或检索滚动控件 Thumb 的当前位置。 |
DDX_Slider |
初始化或检索滑块控件 Thumb 的当前位置。 |
DDX_Text |
初始化或检索编辑控件的当前值。 |
DDX_CBIndex
DDX_CBIndex
函数管理对话框、窗体视图或控件视图对象中的组合框控件与对话框、窗体视图或控件视图对象的 int
数据成员之间的 int
数据传输。
void AFXAPI DDX_CBIndex(
CDataExchange* pDX,
int nIDC,
int& index);
参数
pDX
一个指向 CDataExchange
对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
与控件属性关联的组合框控件的资源 ID。
index
对与之交换数据的对话框、窗体视图或控件视图对象的成员变量的引用。
备注
调用 DDX_CBIndex
时,将 index
设置为当前组合框选择的索引。 如果未选择任何项,index
将设置为 0。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
页眉 afxdd_.h
DDX_CBString
DDX_CBString
函数管理对话框、窗体视图或控件视图对象中组合框控件的编辑控件与对话框、窗体视图或控件视图对象的 CString
数据成员之间的 CString
数据传输。
void AFXAPI DDX_CBString(
CDataExchange* pDX,
int nIDC,
CString& value);
参数
pDX
一个指向 CDataExchange
对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
与控件属性关联的组合框控件的资源 ID。
value
对与之交换数据的对话框、窗体视图或控件视图对象的成员变量的引用。
注解
调用 DDX_CBString
时,value
将设置为当前组合框选择。 如果未选择任何项,value
将设置为长度为零的字符串。
注意
如果组合框是下拉列表框,则交换的值限制为 255 个字符。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
页眉 afxdd_.h
DDX_CBStringExact
DDX_CBStringExact
函数管理对话框、窗体视图或控件视图对象中组合框控件的编辑控件与对话框、窗体视图或控件视图对象的 CString
数据成员之间的 CString
数据传输。
void AFXAPI DDX_CBStringExact(
CDataExchange* pDX,
int nIDC,
CString& value);
参数
pDX
一个指向 CDataExchange
对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
与控件属性关联的组合框控件的资源 ID。
value
对与之交换数据的对话框、窗体视图或控件视图对象的成员变量的引用。
注解
调用 DDX_CBStringExact
时,value
将设置为当前组合框选择。 如果未选择任何项,value
将设置为长度为零的字符串。
注意
如果组合框是下拉列表框,则交换的值限制为 255 个字符。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
页眉 afxdd_.h
DDX_Check
DDX_Check
函数管理对话框、窗体视图或控件视图对象中的复选框控件与对话框、窗体视图或控件视图对象的 int
数据成员之间的 int
数据传输。
void AFXAPI DDX_Check(
CDataExchange* pDX,
int nIDC,
int& value);
参数
pDX
一个指向 CDataExchange
对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
与控件属性关联的复选框控件的资源 ID。
value
对与之交换数据的对话框、窗体视图或控件视图对象的成员变量的引用。
注解
调用 DDX_Check
时,value
将设置为复选框控件的当前状态。 有关可能的状态值的列表,请参阅 Windows SDK 中的 BM_GETCHECK
。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
页眉 afxdd_.h
DDX_Control
DDX_Control
函数子类化由 nIDC
指定的对话框、窗体视图或控件视图对象的控件。
void AFXAPI DDX_Control(
CDataExchange* pDX,
int nIDC,
CWnd& rControl);
参数
pDX
一个指向 CDataExchange
对象的指针。
nIDC
要子类化的控件的资源 ID。
rControl
对与指定控件相关的对话框、窗体视图或控件视图对象的成员变量的引用。
注解
调用 DoDataExchange
函数时,pDX
对象由框架提供。 因此,DDX_Control
应仅在 DoDataExchange
重写中调用。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
页眉 afxdd_.h
DDX_DateTimeCtrl
DDX_DateTimeCtrl
函数管理对话框或窗体视图对象中日期和时间选取器控件(CDateTimeCtrl
)与对话框或窗体视图对象的 CTime
或 COleDateTime
数据成员之间的日期和/或时间数据传输。
void AFXAPI DDX_DateTimeCtrl(
CDataExchange* pDX,
int nIDC,
CTime& value);
void AFXAPI DDX_DateTimeCtrl(
CDataExchange* pDX,
int nIDC,
COleDateTime& value);
void AFXAPI DDX_DateTimeCtrl(
CDataExchange* pDX,
int nIDC,
CString& value);
参数
pDX
一个指向 CDataExchange
对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。 无需删除此对象。
nIDC
与成员变量关联的日期和时间选取器控件的资源 ID。
value
在前两个版本中,对与之交换数据的 CTime
或 COleDateTime
成员变量、对话框、窗体视图或控件视图对象的引用。 在第三个版本中,对 CString
数据成员控件视图对象的引用。
注解
调用 DDX_DateTimeCtrl
时,将 value
设置为日期和时间选取器控件的当前状态,或者将控件设置为 value
,具体取决于交换的方向。
在上面的第三个版本中,DDX_DateTimeCtrl
管理日期时间控件与控件视图对象的 CString
数据成员之间的 CString
数据传输。 使用当前区域设置的日期和时间格式规则设置字符串格式。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
页眉 afxdd_.h
DDX_ManagedControl
创建与控件的资源 ID 相匹配的 .NET 控件。
语法
template <typename T>
void DDX_ManagedControl(
CDataExchange* pDX,
int nIDC,
CWinFormsControl<T>& control );
参数
pDX
指向 CDataExchange
类对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
与控件属性关联的控件的资源 ID。
control
对 CWinFormsControl
类对象的引用。
备注
DDX_ManagedControl
调用 CWinFormsControl::CreateManagedControl
来创建与资源控件 ID 匹配的控件。 使用 DDX_ManagedControl
从 CDialog::OnInitDialog
中的资源 ID 创建控件。 对于数据交换,无需将 DDX/DDV 函数与 Windows 窗体控件一起使用。
有关详细信息,请参阅如何:使用 Windows 窗体进行 DDX/DDV 数据绑定。
要求
标头:afxwinforms.h
DDX_IPAddress
DDX_IPAddress
函数管理 IP 地址控件与控件视图对象数据成员之间的数据传输。
void AFXAPI DDX_IPAddress(
CDataExchange* pDX,
int nIDC,
DWORD& value);
参数
pDX
一个指向 CDataExchange
对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
与控件属性关联的 IP 地址控件的资源 ID。
value
对包含 IP 地址控件的四字段值的 DWORD
的引用。 填充或读取字段,如下所示。
字段 | 包含字段值的位 |
---|---|
3 | 0 到 7 |
2 | 8 到 15 |
1 | 16 到 23 |
0 | 24 到 31 |
使用 Win32 IPM_GETADDRESS
读取值,或使用 IPM_SETADDRESS
填充值。 Windows SDK 中描述了这些消息。
备注
调用 DDX_IPAddress
时,要么从 IP 地址控件读取 value
,要么将 value
写入控件,具体取决于交换的方向。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
页眉 afxdd_.h
DDX_LBIndex
DDX_LBIndex
函数管理对话框、窗体视图或控件视图对象中的列表框控件与对话框、窗体视图或控件视图对象的 int
数据成员之间的 int
数据传输。
void AFXAPI DDX_LBIndex(
CDataExchange* pDX,
int nIDC,
int& index);
参数
pDX
一个指向 CDataExchange
对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
与控件属性关联的列表框控件的资源 ID。
index
对与之交换数据的对话框、窗体视图或控件视图对象的成员变量的引用。
注解
调用 DDX_LBIndex
时,index
设置为当前列表框选择的索引。 如果未选择任何项,index
将设置为 -1。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
页眉 afxdd_.h
DDX_LBString
DDX_LBString
函数管理对话框、窗体视图或控件视图对象中的列表框控件与对话框、窗体视图或控件视图对象的 CString
数据成员之间的 CString
数据传输。
void AFXAPI DDX_LBString(
CDataExchange* pDX,
int nIDC,
CString& value);
参数
pDX
一个指向 CDataExchange
对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
与控件属性关联的列表框控件的资源 ID。
value
对与之交换数据的对话框、窗体视图或控件视图对象的成员变量的引用。
备注
当调用 DDX_LBString
以将数据传输到列表框控件时,将选择控件中开头与 value
匹配的第一个项。 (若要匹配整个项而不仅仅是前缀,请使用 DDX_LBStringExact
。)如果没有匹配项,则不选择任何项。 匹配不区分大小写。
调用 DDX_LBString
以从列表框控件传输数据时,value
将设置为当前列表框选择。 如果未选择任何项,value
将设置为长度为零的字符串。
注意
如果列表框是下拉列表框,则交换的值限制为 255 个字符。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
页眉 afxdd_.h
DDX_LBStringExact
DDX_CBStringExact
函数管理对话框、窗体视图或控件视图对象中列表框控件的编辑控件与对话框、窗体视图或控件视图对象的 CString
数据成员之间的 CString
数据传输。
void AFXAPI DDX_LBStringExact(
CDataExchange* pDX,
int nIDC,
CString& value);
参数
pDX
一个指向 CDataExchange
对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
与控件属性关联的列表框控件的资源 ID。
value
对与之交换数据的对话框、窗体视图或控件视图对象的成员变量的引用。
注解
调用 DDX_LBStringExact
以将数据传输到列表框控件时,将选择控件中与 value
匹配的第一个项。 (若仅匹配前缀而不是整个项,请使用 DDX_LBString
。)如果没有匹配项,则不选择任何项。 匹配不区分大小写。
调用 DDX_CBStringExact
以从列表框控件传输数据时,value
将设置为当前列表框选择。 如果未选择任何项,value
将设置为长度为零的字符串。
注意
如果列表框是下拉列表框,则交换的值限制为 255 个字符。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
页眉 afxdd_.h
DDX_MonthCalCtrl
DDX_MonthCalCtrl
函数管理对话框、窗体视图或控件视图对象中的月历控件(CMonthCalCtrl
)与对话框、窗体视图或控件视图对象的 CTime
或 COleDateTime
数据成员之间的日期数据传输。
void AFXAPI DDX_MonthCalCtrl(
CDataExchange* pDX,
int nIDC,
CTime& value);
void AFXAPI DDX_MonthCalCtrl(
CDataExchange* pDX,
int nIDC,
COleDateTime& value);
参数
pDX
一个指向 CDataExchange
对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。 无需删除此对象。
nIDC
与成员变量关联的月历控件的资源 ID。
value
对与之交换数据的对话框、窗体视图或控件视图对象的 CTime
或 COleDateTime
成员变量的引用。
备注
注意
控件仅管理日期值。 时间对象中的时间字段设置为反映控件窗口的创建时间,或通过调用 CMonthCalCtrl::SetCurSel
在控件中设置的任何时间。
调用 DDX_MonthCalCtrl
时,value
将设置为月历控件的当前状态。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
页眉 afxdd_.h
DDX_Radio
DDX_Radio
函数管理对话框、窗体视图或控件视图对象中的单选控件组与对话框、窗体视图或控件视图对象的 int
数据成员之间的 int
数据传输。 int
数据成员的值取决于选择组内的哪个单选按钮。
void AFXAPI DDX_Radio(
CDataExchange* pDX,
int nIDC,
int& value);
参数
pDX
一个指向 CDataExchange
对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
组中第一个单选控件的资源 ID。
value
对与之交换数据的对话框、窗体视图或控件视图对象的成员变量的引用。
备注
调用 DDX_Radio
时,value
将设置为单选控件组的当前状态。 该值设置为当前选中的单选控件的从零开始的索引,如果没有选中单选控件,则为 -1。
例如,如果已选中组中的第一个单选按钮(该按钮具有 WS_GROUP 样式),int
成员的值将为 0,依此类推。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
页眉 afxdd_.h
DDX_Scroll
DDX_Scroll
函数管理对话框、窗体视图或控件视图对象中的滚动条控件与对话框、窗体视图或控件视图对象的 int
数据成员之间的 int
数据传输。
void AFXAPI DDX_Scroll(
CDataExchange* pDX,
int nIDC,
int& value);
参数
pDX
一个指向 CDataExchange
对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
与控件属性关联的滚动条控件的资源 ID。
value
对与其交换数据的对话框、窗体视图或控件视图对象的成员变量的引用。
备注
调用 DDX_Scroll
时,将 value
设置为控件 Thumb 的当前位置。 有关与控件 Thumb 当前位置关联的值的详细信息,请参阅 Windows SDK 中的 GetScrollPos
。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
页眉 afxdd_.h
DDX_Slider
DDX_Slider
函数管理对话框或窗体视图中的滑块控件与对话框或窗体视图对象的 int
数据成员之间的 int
数据传输。
void AFXAPI DDX_Slider(
CDataExchange* pDX,
int nIDC,
int& value);
参数
pDX
一个指向 CDataExchange
对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
滑块控件的资源 ID。
value
对要交换的值的引用。 此参数保留或设置滑块控件的当前位置。
注解
调用 DDX_Slider
时,将 value
设置为控件 Thumb 的当前位置,或值接收位置,具体取决于交换的方向。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关滑块控件的信息,请参阅使用 CSliderCtrl
。
要求
页眉 afxdd_.h
DDX_Text
DDX_Text
函数管理对话框、窗体视图或控件视图中编辑控件与对话框、窗体视图或控件视图对象的 CString
数据成员之间的 int
、UINT
、long
、DWORD
、CString
、float
或 double
数据的传输。
void AFXAPI DDX_Text(
CDataExchange* pDX,
int nIDC,
BYTE& value);
void AFXAPI DDX_Text(
CDataExchange* pDX,
int nIDC,
short& value);
void AFXAPI DDX_Text(
CDataExchange* pDX,
int nIDC,
int& value);
void AFXAPI DDX_Text(
CDataExchange* pDX,
int nIDC,
UINT& value);
void AFXAPI DDX_Text(
CDataExchange* pDX,
int nIDC,
long& value);
void AFXAPI DDX_Text(
CDataExchange* pDX,
int nIDC,
DWORD& value);
void AFXAPI DDX_Text(
CDataExchange* pDX,
int nIDC,
CString& value);
void AFXAPI DDX_Text(
CDataExchange* pDX,
int nIDC,
float& value);
void AFXAPI DDX_Text(
CDataExchange* pDX,
int nIDC,
double& value);
void AFXAPI DDX_Text(
CDataExchange* pDX,
int nIDC,
COleCurrency& value);
void AFXAPI DDX_Text(
CDataExchange* pDX,
int nIDC,
COleDateTime& value);
参数
pDX
一个指向 CDataExchange
对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
对话框、窗体视图或控件视图对象中编辑控件的 ID。
value
对对话框、窗体视图或控件视图对象中数据成员的引用。 value
的数据类型取决于使用的是 DDX_Text
的哪个重载版本。
备注
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
页眉 afxdd_.h
另请参阅
标准对话框数据验证例程
宏和全局函数
CWinFormsControl::CreateManagedControl
CDialog::OnInitDialog