Visual C++/MFC编程入门:如何创建对话框类和添加控件变量

因为给大家的例程Addition是基于对话框的程序,所以程序自动创建了对话框模板IDD_ADDITION_DIALOG,并自动生成了对话框类CAdditionDlg,它是从CDialogEx类派生的。大家用过VC++ 6.0的可能记得,我们定义的对话框类都是从CDialog类派生的,但在VS2010中,一般对话框类都是继承自CDialogEx类。

创建对话框类

如果是自己新添加的对话框模板,怎样为它创建对话框类呢/p>

1.首先按第六讲:创建对话框模板和修改对话框属性中说的那样,在Resource View的“Dialog”节点上右键,然后在右键菜单中选择“Insert Dialog”创建一个新的对话框模板,ID就使用默认的IDD_DIALOG1。

2.在中间区域会显示新建的对话框模板,然后选中此对话框模板,点右键,在右键菜单中选择Add Class。

VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量)

4.最后点“Finish”完成。

最终你就可以在Class View中看到新生成的对话框类CMyDialog了,并且在Solution Explorer中有相应的MyDialog.h头文件和MyDialog.cpp源文件生成。CMyDialog类同样派生于CDialogEx类。

注意,一般类名都以C打头,又比如,CTestDlg。

为对话框中的控件添加变量

2.我们想为其添加值变量而不是控件变量,所以对话框中“Category”下的组合框中选择Value。

4.在“Variable name”中写入自定义的变量名。鸡啄米为其取名m_editSummand。

VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量)

5.点“Finish”完成。

注意,类的成员变量名一般以m_打头,以标识它是一个成员变量。

对话框类的数据交换和检验

C++代码

void CAdditionDlg::DoDataExchange(CDataExchange* pDX){// 处理MFC默认的数据交换CDialogEx::DoDataExchange(pDX);// 处理控件IDC_SUMMAND_EDIT和变量m_editSummand之间的数据交换DDX_Text(pDX, IDC_SUMMAND_EDIT, m_editSummand);// 处理控件IDC_ADDEND_EDIT和变量m_editAddend之间的数据交换DDX_Text(pDX, IDC_ADDEND_EDIT, m_editAddend);// 处理控件IDC_SUM_EDIT和变量m_editSum之间的数据交换DDX_Text(pDX, IDC_SUM_EDIT, m_editSum);}

但是这种数据交换机制中,DoDataExchange()并不是被自动调用的,而是需要我们在程序中调用CDialogEx::UpdateData()函数,由UpdateData()函数再去自动调用DoDataExchange()的。

CDialogEx::UpdateData()函数的原型为:

BOOL UpdateData(BOOL bSaveAndValidate = TRUE);

参数:bSaveAndValidate用于指示数据传输的方向,TRUE表示从控件传给变量,FALSE表示从变量传给控件。默认值是TRUE,即从控件传给变量。

返回值:CDialogEx::UpdateData()函数的返回值表示操作是否成功,成功则返回TRUE,否则返回FALSE。

在下一讲中将具体演示CDialogEx::UpdateData()函数如何使用。

本节主要讲的是新建对话框类和添加控件变量,控件的消息处理函数将在下一讲详细介绍。

点击获取更多教程资源>>

Visual C++/MFC编程入门:如何创建对话框类和添加控件变量

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月18日
下一篇 2020年11月18日

相关推荐

发表回复

登录后才能评论