第4章MFC基于对话框编程
4.3公用对话框
使用公用对话框步骤 使用公用对话框的步骤如下: (1)创建一个对话框对象并对其属性进行设置。 (2)通过对话框类的DoModal函数向用户显示对话
框并让用户选择。 (3)获得DoModal函数的返回值,判断用户是否做
出了选择。如果用户单击了“确定”按钮返回值为 IDOK,则读取用户设置来响应用户的操作;如果用 户单击了“取消”,则不响应用户的操作。
4.2基本消息框
按钮风格参数
按钮类型
按钮风格参 数
按钮类型
MB_ABORTRETR 终止、重试、 MB_RETRY
YIGNORE
忽略
CANCEL
重试,取消
MB_OK
确定
MB_YESNO 是,否
MB_OKCANCEL
确定,取消
MB_YESNO 是,否,取
CANCEL
消
4.2基本消息框
图标
图标参数
信息 问号
4.4创建自定义对话框
对话框的基本知识 对话框按照其功能的不同可以分为模式对话框和无模式对话框,
它们在外观上没有什么区别,但是在对话框的创建和删除上 却有一定的区别。 模式对话框是最常见的对话框,当用户在应用程序中显示一个 模式对话框时,不能在该对话框与该应用程序的其它窗口之 间切换,而必须关闭对话框之后,才能将输入焦点转移到应 用程序的其它窗口,这种类型的对话框叫做模式对话框,也 称模态对话框。如Word字处理程序的“打开”对话框。 相对于模式对话框而言,无模式对话框不仅允许在对话框与其 它应用程序的窗口之间切换,而且允许在对话框与同一程序 的窗口之间切换,这种类型的对话框称为无模式对话框,也 称非模态对话框。在Word字处理中,“查找与替换”对话 框就是一个典型的无模式对话框,用户可以一边查找文字, 一边编辑文本。
函数? (4)模式对话框与无模式对话框的数据是如何交换的? 4.5.2作业设计 (1)扩展【例4.1】应用程序功能,设计一模式对话框,当单
击“打开对话框”按钮时,弹出该对话框。 (2)设计一个简单的计算器,有加、减、乘、除、等于等运
算符按钮和数字按钮,能够计算四则运算,将结果显示在窗 口中。
4.2基本消息框
MessageBox( )函数有三个参数。 第一个参数lpszText,是要显示给用户的消息
文本; 第二个参数lpszCaption,是要显示在消息框的
标题栏中的标题,它是可选的; 第三个参数nType,用来指定显示给用户的按
钮或图标,它也是可选的。
函数的第三个参数还可以指定消息框要显示的 图标及按钮风格,
4.4创建自定义对话框
自定义对话框的创建步骤: (1)使用对话框的资源编辑器设计对话框的外观和
控件的布局 (2)使用类向导创建新的对话框类。 (3)在对话框类中加入与控件相关联的成员变量。 (4)给对话框中的控件添加消息处理函数。 (5)在应用程序中声明对话框对象,并利用对话框
的成员函数向用户显示对话框并接收用户的选择。
4.4创建自定义对话框
非模式对话框的数据交换机制
4.4创建自定义对话框
模式对话框的数据交换机制
4.5专题讨论与作业设计
4.5.1专题讨论 (1)为什么必须指定应用程序窗口中控件的切换顺序? (2)为什么要给控件指定惟一的ID值? (3)在检查每个控件的值之前,为什么必须调用UpdateData
MB_ICONINFORMATION MB_ICONASTERISK MB_ICONHAND
MB_ICONQUESTION
停止号 MB_ICONSTOP MB_ICONERROR
惊叹号 MB_ICONWARNING MB_ICONEXCLAMATION
4.2基本消息框
按钮 确定 取消 终止 重试 忽略 是 否
第4章 MFC基于对话框编程
保定职业技术学院
第4章 MFC基于对话框编程
4.1基于对话框的应用程序 4.2基本消息框 4.3公用对话框 4.4创建自定义对话框 4.5专题讨论与作业设计
4.1基于对话框的应用程序
创建基于对话框的应用程序框 在对话框中添加控件 编辑控件的属性 关联控件与变量 关联功能与控件
4.3公用对话框
例如,使用文件打开对话框获得要打开文件 名的一般代码为:
CFileDialog fdlg(TRUE); //调用对话框,让用户选择
if(fdlg.DoModal()==IDOK) { m_edit_sRV=fdlg.GetPathName(); UpdateData(FALSE);}
返回值 1 2 3 4 5 6 7
4.2基本消息框
4.3公用对话框
公用对话框类 MFC类库提供的公用对话框类主要有: CColorDialog类:用于颜色选择对话框。 CFileDialog类:用于文件的打开或保存对话框。 CFindReplaceDialog类:用于查找或查找替换对话框。 CFontDialog类:用于字体设置对话框。 CPrintDialog类:用于打印设置对话框。
4.2基本消息框
消息框函数 消息框函数MessageBox( )是窗口类用来创建
消息框的一个成员函数,函数的定义如下: int MessageBox(
LPCTSTR lpszText, LPCTSTR, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK );