MFC的DDX和DDV技术
来源:互联网 发布:雅思词汇书哪本好 知乎 编辑:程序博客网 时间:2024/05/17 20:22
MFC采用了独特的DDX和DDV技术。
DDX将数据成员变量同对话类模板内的控件相连接,这样就使得数据在控件之间很容易地传输。
DDV用于数据的校验,例如它能自动校验数据成员变量数值的范围,并发出相应的警告。
在类向导下添加成员变量的过程很简单,需要说明的是
。在DDV/DDX技术中,允许用户为同一个控件关联多个数据成员变量,但必须保证这些变量名是互不相同的,且这些变量在同一个类型不能有多个变量,即在Value和Control类型中各自只能有一个成员变量。
。如果添加的成员变量是一个数值类型,则在类向导对话框的Member Variables页面正文还要求用户输入变量的范围,这就是控件的数据校验设置。
添加完成成员变量后,类向导会在代码文件里加入如下代码
1. 在头文件中,添加与控件关联的成员变量的声明,代码:
// Dialog Data
//{{AFX_DATA(CMyDlg)
enum { IDD = IDD_DIALOG5 };
int m_edit;
//}}AFX_DATA
2. 在 .CPP文件中的类构造函数实现代码处,添加数据成员变量的一些初始化代码
CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMyDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CMyDlg)
m_edit = 0;
//}}AFX_DATA_INIT
}
3. 在 .CPP文件中的DoDataExchange函数体内,添加控件的DDX/DDV代码,它们都是一些以DDV_或DDX_开关的函数调用。
void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);//调用此函数作为DDX的开始
//{{AFX_DATA_MAP(CMyDlg)
DDX_Text(pDX, IDC_EDIT1, m_edit);//将控件与变量进行数据交换
DDV_MinMaxInt(pDX, m_edit, 1, 10);//校验最大值和最小值
//}}AFX_DATA_MAP
}
需要说明的是,上述代码中以 “//{{AFX_DATA” 或“//{{AFX_DATA_XXXX”开头,而以 “//}}AFX_DATA” 或 “//}}AFX_DATA_”结尾的标记是类向导定义的专门用来做DDX/DDVr 标记,表示该部分的代码是同类向导自动管理,用户一般不需要去更改。
4. 当为一个控件定义一个关联的数据成员变量后,就可以使用CWnd::UpdataData函数实现控件的控制,包括控件相关数据的输入和读取。
UpdateData(FALSE) 数据由控件相关的成员变量向控件传输
UpdateData(TRUE)或参数为空 数据从控件向相关联的成员变量复制。
- MFC的DDX和DDV技术
- MFC的DDX和DDV技术
- MFC独特的DDX和DDV技术
- MFC中的DDX和DDV
- MFC中的DDX和DDV
- MFC中的DDX和DDV
- mfc中的ddx和ddv
- VC/MFC DDX和DDV机制介绍
- DDV和DDX
- DDX和DDV
- DDX和DDV
- DDX和DDV
- MFC 中DDX DDV 解疑
- MFC--DDV与DDX对比
- MFC中对话框的数据交换(DDX)和数据校验(DDV)
- MFC中对话框的数据交换(DDX)和数据校验(DDV)
- MFC中对话框的数据交换(DDX)和数据校验(DDV)
- MFC中对话框的数据交换(DDX)和数据校验(DDV)。。。
- GDCPC2007的衣服:) (2007-04-17 23:39)
- POJ 300AC~~(2007-04-18 16:38)
- 美国总统候选人麦凯恩取笑女性,称其享受被猩猩强奸
- dotNET没用注册到IIS解决办法
- POJ1988--cube stacking(2007-04-18 17:01)
- MFC的DDX和DDV技术
- 使用XFire+Spring构建Web Service(二)
- GDCPC 2007 RP无限~~(2007-04-21 23:20)
- 性能测试资料汇总【常见问题篇】
- ajax.net控件的简单运用,实现操作未完成时防止在次操作!
- 搭建android开发环境windown版
- NetLimiter
- 贴近windows的字体效果。fedora ubuntu等linux全系列版本适用
- GDCPC 2007 应该说还是比较高兴的...(2007-04-23 00:15)