计算机C语言编程教程 第四章 对话框.ppt
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
此外,用户可以添加一个自己的对话框。 鼠标右击【Dialog】文件夹,在弹出的快 捷方式菜单中选择【Insert Dialog】菜单 项,这时,不仅在资源面板中多了一个ID 号IDD_DIALOG1的对话框资源,而且在
创建对话框
无论是模态对话框还是非模态对话框,都 需要拥有相应的对话框模板资源和新的对 话框类,二者的创建都是遵循以下步骤。
添加控件
添加了对话框资源后,即可根据用户的需 要在对话框中添加控件,控件的添加在第 3章中已经具体讲解过了,此处不再赘述。 例如,需要创建一个具有对用户输入的两 个数字进行相加的对话框时,那么只需要 在上一步骤中创建的对话框中添加相应控 件,并设置相关属性即可,如图4-12所示。
使用ClassWizard创建对话框类
对话框的数据交换
例如,用户在非模态对话框 IDD_MYDLG的【相加】按钮的处理 函数OnOK()函数中键入如下代码来实 现数据交换。
UpdateData(TRUE); //将数据从对话框的控件
中传送到对应的数据成员中 m_nSum=m_nNum1+m_nNum2;
综合练习
在第3章的“学生个人信息登记表”对话框中,完 成如下功能:当用户输入了该对话框中对应信息 后,单击【OK】按钮,这些信息将显示到学生信 息编辑框中,如图4-38所示。
对话框
控件n
对话框的种类
一般的说,Windows应用程序中,对话框 分为模态(Modal)对话框和非模态 (Modeless)对话框两种,这两种对话框 的区别在于当对话框打开时是否允许用户 进行其他对象的操作。
模态对话框是指在用户想要进行对话框以 外的应用程序操作时必须首先对该对话框 进行响应
第四讲:对话框
杨章伟 e-mail:yang505412@
课程内容安排
对话框概述 创建对话框 模态对话框和非模态对话框 属性页和向导对话框 公用对话框 综合练习 思考和习题
对话框概述
在Visual C++中,对话框是一个真正的窗 口。对话框不仅可以接收消息,而且还可 以被移动和关闭,甚至可以在其客户区中 进行绘图。因此,可以将对话框看成一个 大容器,在它上面能够放置各种各样的标 准及扩展控件,使程序支持用户输入的手 段更加丰富,如图控件1 4-1所控件2 示。
种公用对话框。 简述对话框的创建流程。 使用Visual C++中的MFC创建基于对话框
的Windows应用程序,编写一个小学生四 则运算练习器。该程序可进行加、减、乘、 除运算的练习,通过一组单选按钮,由用 户选择进行加法、减法、乘法、除法运算。
显示非模态对话框
例如,要显示一个非模态对话框 m_Mydlg,其实现代码如下所示。
if (!m_Mydlg.m_hWnd) //判断对话框是否已
被创建 {
显示模态对话框
例如,要创建并显示一个模态对话框, 其实现代码如下所示:
CMyDlg m_Mydlg;
//定义对
象m_Mydlg
用户
模态对话框
目标对话框
非模态对话框
非模态对话框允许用户在处理非模态对话框 的同时处理目标对话框,其不会垄断用户的 输入,如图4-5所示。
非模态对话框
用户
目标对话框
对话框编辑器
对话框的设计区域称为对话框编辑器。当 读者插入一个新的对话框资源后,打开工 作台的资源面板,打开【Dialog】文件夹, 可以看到下面有一个ID号为 IDD_ABOUTBOX对话框,这几乎是每个 MFC应用程序所具备的。
对话框的数据交换
Visual C++的对话框中数据交换通过 调用UpdateData函数来实现。 UpdataData函数原形如下:
BOOL UpdateData ( BOOL bSaveAndValidaet = TRUE);
UpdataData函数只有一个布尔型参数 bSaveAndValidate,其决定了数据传 送的方向。若参数值为TURE,即调用 UpdateData(TRUE),表示将数据从对
(1)添加一个新的对话框资源并用对话 框编辑器设计对话框。
(2)创建新的对话框类,该类应从 CDialog类派生。
(3)使用ClassWizard为对话框类加入与 控件相关联的成员变量。
(4)在对话框类中添加需要的消息处理。 (5)创建对话框并显示。
添加对话框资源
使用AppWizard创建一个单文档视图工程 “创建对话框”,需要为该工程添加一个 对话框,只需在工作台的【ResourceView】 选项卡中选择【Dialog】项,右键单击该 项并在快捷菜单中单击【Insert Dialog】 命令,如图4-9所示。
非模态对话框与模态对话框不同,当用户 打开非模态对话框时,依然可以操作其他
模态对话框
模态对话框垄断了用户的输入,当一个模态对话 框打开时,用户只能与该对话框进行交互,而其 他用户界面对象收不到输入信息。模态对话框下, 用户需要操作目标对话框就必须先操作模态对话 框,如图4-3所示,这就是用户对模态对话框的 处理。
ห้องสมุดไป่ตู้合练习
设计一个用户登录框,并拥有判断功 能:当用户输入正确的用户名“admin” 和正确的密码“123456”后显示如图439所示结果,否则显示4-40所示错误 信息。
思考和习题
如何理解数据交换技术的原理。 给控件添加事件的操作步骤分别为哪些? 如何创建属性对话框、向导页对话框和几
m_Mydlg.DoModal();
//创建模
态对话框
对话框的数据交换
对话框的数据成员变量存储了与控件 相对应的数据。在对话框运行后,数 据变量需要和控件交换数据,以完成 输入或输出功能。例如,一个编辑框 可能需要用来输入,也可能需要用来 输出。当用作输入时,用户在其中输 入了数值之后,对应的数据成员应该 更新与编辑框中的数值相同;当用作 输出时,应及时刷新编辑框的内容以 反映相应数据成员的变化。因此,对
鼠标消息
消息处理函数
应用程序
……
添加消息处理函数
双击ClassWizard中的按钮来打开 【Add Member Function】对话框。在 该对话框中添加消息处理函数。事实 上,读者可以右击该类,在其中选择 【Add Windows Message Handle】 菜单项,在其中也可添加消息处理函 数。
利用ClassWizard,用户可以十分方便地 创建MFC窗口类的派生类,对话框类也不 例外。
使用ClassWizard加入成员变量
创建好了对话框类后,就可以使用 ClassWizard为对话框类加入与控件相 关联的成员变量了。
添加消息处理函数
所谓消息处理函数即窗口过程,在这个函数 中,不同的消息将用switch分支语句分配到 不同的处理程序中去,消息处理函数在应用 程序中的功键盘能消息 如图4-23所示。
创建对话框
无论是模态对话框还是非模态对话框,都 需要拥有相应的对话框模板资源和新的对 话框类,二者的创建都是遵循以下步骤。
添加控件
添加了对话框资源后,即可根据用户的需 要在对话框中添加控件,控件的添加在第 3章中已经具体讲解过了,此处不再赘述。 例如,需要创建一个具有对用户输入的两 个数字进行相加的对话框时,那么只需要 在上一步骤中创建的对话框中添加相应控 件,并设置相关属性即可,如图4-12所示。
使用ClassWizard创建对话框类
对话框的数据交换
例如,用户在非模态对话框 IDD_MYDLG的【相加】按钮的处理 函数OnOK()函数中键入如下代码来实 现数据交换。
UpdateData(TRUE); //将数据从对话框的控件
中传送到对应的数据成员中 m_nSum=m_nNum1+m_nNum2;
综合练习
在第3章的“学生个人信息登记表”对话框中,完 成如下功能:当用户输入了该对话框中对应信息 后,单击【OK】按钮,这些信息将显示到学生信 息编辑框中,如图4-38所示。
对话框
控件n
对话框的种类
一般的说,Windows应用程序中,对话框 分为模态(Modal)对话框和非模态 (Modeless)对话框两种,这两种对话框 的区别在于当对话框打开时是否允许用户 进行其他对象的操作。
模态对话框是指在用户想要进行对话框以 外的应用程序操作时必须首先对该对话框 进行响应
第四讲:对话框
杨章伟 e-mail:yang505412@
课程内容安排
对话框概述 创建对话框 模态对话框和非模态对话框 属性页和向导对话框 公用对话框 综合练习 思考和习题
对话框概述
在Visual C++中,对话框是一个真正的窗 口。对话框不仅可以接收消息,而且还可 以被移动和关闭,甚至可以在其客户区中 进行绘图。因此,可以将对话框看成一个 大容器,在它上面能够放置各种各样的标 准及扩展控件,使程序支持用户输入的手 段更加丰富,如图控件1 4-1所控件2 示。
种公用对话框。 简述对话框的创建流程。 使用Visual C++中的MFC创建基于对话框
的Windows应用程序,编写一个小学生四 则运算练习器。该程序可进行加、减、乘、 除运算的练习,通过一组单选按钮,由用 户选择进行加法、减法、乘法、除法运算。
显示非模态对话框
例如,要显示一个非模态对话框 m_Mydlg,其实现代码如下所示。
if (!m_Mydlg.m_hWnd) //判断对话框是否已
被创建 {
显示模态对话框
例如,要创建并显示一个模态对话框, 其实现代码如下所示:
CMyDlg m_Mydlg;
//定义对
象m_Mydlg
用户
模态对话框
目标对话框
非模态对话框
非模态对话框允许用户在处理非模态对话框 的同时处理目标对话框,其不会垄断用户的 输入,如图4-5所示。
非模态对话框
用户
目标对话框
对话框编辑器
对话框的设计区域称为对话框编辑器。当 读者插入一个新的对话框资源后,打开工 作台的资源面板,打开【Dialog】文件夹, 可以看到下面有一个ID号为 IDD_ABOUTBOX对话框,这几乎是每个 MFC应用程序所具备的。
对话框的数据交换
Visual C++的对话框中数据交换通过 调用UpdateData函数来实现。 UpdataData函数原形如下:
BOOL UpdateData ( BOOL bSaveAndValidaet = TRUE);
UpdataData函数只有一个布尔型参数 bSaveAndValidate,其决定了数据传 送的方向。若参数值为TURE,即调用 UpdateData(TRUE),表示将数据从对
(1)添加一个新的对话框资源并用对话 框编辑器设计对话框。
(2)创建新的对话框类,该类应从 CDialog类派生。
(3)使用ClassWizard为对话框类加入与 控件相关联的成员变量。
(4)在对话框类中添加需要的消息处理。 (5)创建对话框并显示。
添加对话框资源
使用AppWizard创建一个单文档视图工程 “创建对话框”,需要为该工程添加一个 对话框,只需在工作台的【ResourceView】 选项卡中选择【Dialog】项,右键单击该 项并在快捷菜单中单击【Insert Dialog】 命令,如图4-9所示。
非模态对话框与模态对话框不同,当用户 打开非模态对话框时,依然可以操作其他
模态对话框
模态对话框垄断了用户的输入,当一个模态对话 框打开时,用户只能与该对话框进行交互,而其 他用户界面对象收不到输入信息。模态对话框下, 用户需要操作目标对话框就必须先操作模态对话 框,如图4-3所示,这就是用户对模态对话框的 处理。
ห้องสมุดไป่ตู้合练习
设计一个用户登录框,并拥有判断功 能:当用户输入正确的用户名“admin” 和正确的密码“123456”后显示如图439所示结果,否则显示4-40所示错误 信息。
思考和习题
如何理解数据交换技术的原理。 给控件添加事件的操作步骤分别为哪些? 如何创建属性对话框、向导页对话框和几
m_Mydlg.DoModal();
//创建模
态对话框
对话框的数据交换
对话框的数据成员变量存储了与控件 相对应的数据。在对话框运行后,数 据变量需要和控件交换数据,以完成 输入或输出功能。例如,一个编辑框 可能需要用来输入,也可能需要用来 输出。当用作输入时,用户在其中输 入了数值之后,对应的数据成员应该 更新与编辑框中的数值相同;当用作 输出时,应及时刷新编辑框的内容以 反映相应数据成员的变化。因此,对
鼠标消息
消息处理函数
应用程序
……
添加消息处理函数
双击ClassWizard中的按钮来打开 【Add Member Function】对话框。在 该对话框中添加消息处理函数。事实 上,读者可以右击该类,在其中选择 【Add Windows Message Handle】 菜单项,在其中也可添加消息处理函 数。
利用ClassWizard,用户可以十分方便地 创建MFC窗口类的派生类,对话框类也不 例外。
使用ClassWizard加入成员变量
创建好了对话框类后,就可以使用 ClassWizard为对话框类加入与控件相 关联的成员变量了。
添加消息处理函数
所谓消息处理函数即窗口过程,在这个函数 中,不同的消息将用switch分支语句分配到 不同的处理程序中去,消息处理函数在应用 程序中的功键盘能消息 如图4-23所示。