『VC++技术内幕』学习笔记(9)(3)
UpdateData()是这样工作的,如果调用UpdateData时传给它的参数是FLASE,那么通过DoDataExchange、DDX_(交换)和DDV_(确认)函数会将数据成员中的值传递给对话框中的控件;反之,如果调用UpdateData时传给它的参数是TRUE,那么通过函数会将对话框的控件传递给数据成员。
本例中DoDataExchange函数在CGuessDlg类中被重载,在代码中是下面这样的:
void CGuessDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CGuessDlg)
DDX_Text(pDX, IDC_EDIT1, m_num1);
DDX_Text(pDX, IDC_EDIT2, m_num2);
DDX_Text(pDX, IDC_EDIT3, m_num3);
DDX_Text(pDX, IDC_EDIT4, m_num4);
DDX_Text(pDX, IDC_EDIT5, m_num5);
DDX_Text(pDX, IDC_EDIT6, m_num6);
DDX_Text(pDX, IDC_EDIT7, m_num7);
//}}AFX_DATA_MAP
}
DDX_Text函数也被重载,这样它可以用来处理各种类型的数据。
*/
//************************************************************************
6)好了,编译运行,怎么样成功了吧。如果通过这个小程序您买的彩票中了奖,别忘了告诉雷神一声。
注意,程序运行需等待一段时间,下一步可以改进程序例如在程序运行过程中使鼠标指针变成“沙漏”,或加入一个进度条控件,有兴趣的朋友可以一试。
今天我们了解了对话框和控件应用的基本方法,其实书上的例子更适合大家了解对话框和控件的应用,雷神写这个例子的目的是让大家尤其是初学者知道,VC虽然很不容易学好,但以我们掌握的知识,也可以用它做一些程序,虽然很小,但很实用。如果你还没有信心不妨写个计算器,我相信你一定会成功。下一回我们将进一步学习模式对话框和通用控件,我们将学习对话框和视图相连,以及一些高级控件,和对话框的改进。
- 上一篇:『VC++技术内幕』学习笔记(10)
- 下一篇:『VC++技术内幕』学习笔记(8)