【教学课件】第7章对话框及常用控件.ppt

上传人:小飞机 文档编号:5659347 上传时间:2023-08-06 格式:PPT 页数:79 大小:315KB
返回 下载 相关 举报
【教学课件】第7章对话框及常用控件.ppt_第1页
第1页 / 共79页
【教学课件】第7章对话框及常用控件.ppt_第2页
第2页 / 共79页
【教学课件】第7章对话框及常用控件.ppt_第3页
第3页 / 共79页
【教学课件】第7章对话框及常用控件.ppt_第4页
第4页 / 共79页
【教学课件】第7章对话框及常用控件.ppt_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《【教学课件】第7章对话框及常用控件.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第7章对话框及常用控件.ppt(79页珍藏版)》请在三一办公上搜索。

1、第7章 对话框及常用控件,学习目标 本章要点上机练习 习 题,学习目标,对话框是Windows应用程序中最重要的用户界面元素之一,是应用程序与用户交互的重要手段。在程序运行过程中,对话框可用于捕捉用户的输入信息或数据。本章将重点学习对话框的使用,了解对话框的常用控件,如静态控件、按钮、编辑框、单选框、复选框、组合框及对话框的基本编程方法。,本章要点,对话框的使用对话框的常用控件对话框的编程,对话框的使用,对话框在Windows系统环境中应用很普遍,它通常作为应用程序与用户交互的场所,是用户向应用程序传递信息的工具。对话框是一个特殊类型的窗口,任何对窗口进行的操作,均可在对话框中进行操作。与Vi

2、sual C+的其他窗口相比,对话框的最大优点还在于它更易于放置控件来和用户进行交互。,对话框的使用,模式和无模式对话框 创建对话框,模式和无模式对话框,对话框有两种类型,一种是模式对话框,另一种是无模式对话框。,模式对话框,模式对话框指出现对话框时,应用程序的主窗口都会被冻结,无法执行任何动作。当打开此对话框时,Word的主窗口将无法执行任何编辑动作。,模式对话框,一般情况下,模式对话框会有“OK”和“Cancel”按钮,单击“OK”按钮,系统认定用户在对话框中的选择或输入有效,对话框退出;单击“Cancel”按钮,则是指对话框中的选择或输入无效,对话框退出,程序回复到原有状态。模式对话框的

3、应用范围较广,平常所见到的对话框大都是模式对话框。,无模式对话框,当无模式对话框出现时,应用程序的主窗口仍然可以操作,在主窗口可继续进行编辑操作。当需要使用对话框时,只需像激活一般窗口一样单击对话框所在的区域即可。MFC提供了CDialog对话框类,它同时支持这两种类型的对话框。,无模式对话框,CDialog类是所有对话框类的基类。它定义了一个构造函数和一个Create()成员函数来创建对话框。构造函数根据对话框模板ID来访问对话框资源,该函数经常用于构造一个基于资源的模式对话框;而Create()函数则使用对话框模板,由资源创建无模式对话框。,无模式对话框,CDialog中有许多成员函数,其

4、中最重要的有以下4个:virtual int CDialog:DoModal():用于激活模式对话框,完成后返回对话框结果。在此对话框关闭前,用户不能与应用程序的其他窗口交互。函数返回一个int型数值,当函数无法建立对话框时返回-1,发生错误时返回IDABORT。,无模式对话框,virtual BOOL CDialog:OnInitDialog():用于响应WM_INITDIALOG消息。在Create()或DoModal()函数调用期间,系统会发送WM_INITDIALOG给对话框,在对话框显示之前执行该函数。protected virtual void CDialog:OnOK():当用户

5、单击“OK”按钮(ID为IDOK)时,调用该函数。,无模式对话框,protected virtual void CDialog:OnCancel():当用户单击“Cancel”(取消)按钮或按“Esc”键时被调用。在模式对话框下,将自动终止模式对话框,DoModal()返回IDCANCEL。,创建对话框,创建对话框的方法有如下两种:,利用AppWizard建立对话框,创建对话框,在SDI或MDI方式下,单击项目工作区窗口中的“ResourceView”选项卡,展开“Dialog”选项,可在里面手动添加用户自定义对话框。下面举例介绍如何在SDI界面下创建一个对话框。【例7-1】利用SDI方式为【

6、例6-10】增加一个对话框。(光盘:第7章例7_17_2),对话框中的控件,控件是在系统内部定义的能够完成特定功能的控制程序单元。在应用程序中使用控件不仅简化了编程,还能完成常用的各种功能。为了更好地发挥控件的作用,用户应理解和掌握控件的属性、消息以及创建和使用的方法。,对话框中的控件,在进行对话框的界面设计时,Visual C+6.0中已经提供了控件工具。当用户新建一个对话框时,控件工具栏一般会自动弹出。如果没有看到控件工具栏,则由用户手动显示。,控件工具栏,对话框中的控件,Visual C+6.0提供了很多控件,而且每个控件都有大量的属性和事件。下面将介绍一些常用的控件。,静态控件,静态控

7、件用来显示字符串、框、矩形、图标、位图或增强的图元文件。它可以被用来作为标签、框或分隔其他的控件。静态控件一般不接收用户输入,也不产生通知消息。,静态控件,静态控件,按钮,它由CButton类进行管理,使用CButton:SetButtonStyle和CButton:GetButtonStyle函数能够在应用程序中动态地设置和查询按钮状态。,按钮,如果按钮具有焦点,还可使用鼠标左键、“Enter”键或空格键触发该按钮的Click事件。通过设置窗体的AcceptButton或CancelButton属性,无论该按钮是否有焦点,都可以通过按“Enter”键或“Esc”键来触发按钮的Click事件。

8、,按钮,当使用ShowDialog方法显示窗体时,可以使用按钮的DialogResult属性指定ShowDialog的返回值。,按钮,在按钮映射的消息中,常见的有两个:BN_CLICKED(单击按钮)、BN_DOUBLECLICKED(双击按钮)。下面将介绍Visual C+6.0在对话框中添加按钮及按钮属性的设置方法。,按钮,控件的对话框中含有许多属性,对于大多数控件来说,这些属性一般都有“General”(一般属性)、“Styles”(控件的风格)和“Extended Styles”(控件的扩展风格)3个选项卡。其中“General”和“Styles”是用来设定控件的外观和辅助功能的,不同

9、的控件具有不同的风格和扩展风格,但控件的一般属性是基本相同的,它通常有标识符框、标题框等内容。,按钮,各项具体说明如下:“ID”文本框:控件的标识符。每种控件都有缺省的ID,例如按钮控件为IDC_BUTTON1。“标题”文本框:控件的标题。大多数控件都有缺省的标题,例如按钮控件为Button1。,按钮,按钮,编辑框,编辑框(Edit Box)是用户通过键盘和鼠标输入和编辑文字的矩形窗口,用户可通过它进行文字、数字或口令的输入,也可使用它编辑或修改简单的文本文件。选择编辑框后,编辑框中将显示默认文本和闪烁的光标,光标处用以表示开始输入文本的位置。然后用户就可用键盘或鼠标来输入文本、移动光标、选择

10、、移动或删除的文本。,编辑框,编辑框通常用于编辑文本,不过也可使其成为只读控件。编辑框能够显示多行数据、对文本换行使其符合控件的大小和添加基本的格式设置等。但是编辑框中显示或输入的文本只能采用一种格式。,编辑框,Text属性是编辑框最重要的属性,因为要显示的文本就包含在Text属性中。默认情况下,最多可在一个编辑框中输入2048个字符。如果将MultiLine属性设置为True,则最多可输入32KB的文本。Text属性可在设计窗体时使用属性窗口设置,也可在运行时用代码设置或通过用户输入来设置。在运行时通过读取Text属性可以获得编辑框的当前内容。,编辑框,设置编辑框的页面边距可使文本在编辑框显

11、示更具满意效果,这在多行编辑控件中尤为重要,应用程序可以通过调用成员函数CEdit:SetMargins来实现,这个函数的原型如下:Void SetMargins(UINT nLeft,(UINT nRight);,编辑框,其中,参数nLeft和nRight分别用来指定左、右边距的像素宽度。口令设置在编辑控件中不同于一般的文本编辑控件,用户输入的每个字符都被一个特殊的字符代替显示,这个特殊的字符称为口令字符。,编辑框,缺省的口令字符是“*”,应用程序可以用成员函数Cedit:SetPasswordChar来定义自己的口令字符,其函数的原型如下:Void SetPasswordChar(TCHA

12、R ch);,单选项,单选项,当单击单选项时,其Checked属性被设置为True,并调用Click事件处理程序。当Checked属性的值更改时,将触发CheckedChanged事件。如果AutoCheck属性被设置为True(默认),那么当选择该单选项时,将自动清除该组中其他单选项。,单选项,通常只有在使用验证代码以确保选定的单选项是允许的选项时,才将该属性设置为False。用Text属性可以设置控件内显示的文本,该属性也可以包含访问键快捷方式,即前面带有“&”符号的字母,这样用户就可以通过同时按“Alt”键和访问键来“单击”控件。,单选项,如果将Appearance属性设置为Button

13、,将使单选项的外观像按钮一样,即当选中它时,它看起来已被按下。单选项也可以使用Image和ImageList属性组合来显示图像。,复选框,复选框,复选框和单选项的相似之处在于:它们都是供用户选择的选项。其不同之处在于:在单选项组中一次只能选择一个单选项,而在一组复选框中则可同时选择任意多项。,复选框,复选框有两个重要属性Checked和CheckState。Checked属性返回True或False。CheckState属性返回CheckState.Checked或CheckState.Unchecked。如果ThreeState属性被设置为True,CheckState属性还可返回Check

14、State.Indeterminate,此时,复选框显示为浅灰色状态,通常表示该选项下的多个子选项未完全选中。,组合框,组合框,组合框,组合框的风格及类型 组合框常见操作 组合框的通知消息,组合框的风格及类型,按照组合框的主要风格特征,可把组合框分为3类:简单组合框、下拉式组合框、下拉式列表框。,组合框的风格及类型,简单组合框和下拉式组合框都包含有列表框和编辑控件,但是简单组合框中的列表框不需要单击下拉按钮,是直接显示出来的;而当用户单击下拉式组合框中的下拉按钮时,下拉的列表框才被显示出来。下拉式列表框虽然具有下拉式的列表,却没有文字编辑功能。,组合框的风格及类型,组合框还有其他一些风格,这些

15、风格可以在组合框的属性对话框中设置。,组合框的风格及类型,组合框中“Styles”选项卡下各选项的属性说明如下:“Y类”下拉列表框:设置组合框的类型,有Simple(简单)、Dropdown(下拉)、DropList(下拉列表框)3种。“Owner draw”下拉列表框:自画组合框,缺省为No。,组合框的风格及类型,组合框的风格及类型,组合框的风格及类型,组合框的风格及类型,组合框常见操作,组合框的操作是调用CComboBox成员函数来实现的。其CcomboBox类常用成员函数说明如下:int AddString(LPCTSTR lpszString):向组合框添加字符串。错误时返回CB_ER

16、R;空间不够时返回CB_ERRSPACE。,组合框常见操作,int DeleteString(UINT nIndex):删除指定的索引项,返回剩下的列表项总数,错误时返回CB_ERR。int InsertString(int nIndex,LPCTSTR lpszString):在指定的位置处插入字符串,若nIndex=-1时,即向组合框尾部添加。,组合框常见操作,Void ResetContent():删除组合框的全部项和编辑文本。int SetCurSel(int nSelect):设置当前选择项。int GetCount()const:获得组合框的项数。,组合框的通知消息,在组合框的通知

17、消息中,有操作列表框发出的也有操作编辑框发出的。现说明如下:CBN_CLOSEUP:当组合框的列表关闭时发送此消息。CBN_DBLCLK:当双击组合框的某项字符串时发送此消息。,组合框的通知消息,CBN_DROPDOWN:当组合框的列表打开时发送此消息。CBN_SELENDCANCEL:当前选择项被取消时发送此消息。CBN_SELENDOK:当用户选择一个项并按下“Enter”键或单击下拉箭头隐藏列表框时发送此消息。,组合框的通知消息,CBN_KILLFOCUS:当组合框失去键盘输入焦点时发送此消息。CBN_SELCHANGE:当组合框的当前选择项将要改变时发送此消息。CBN_SETFOCUS

18、:当组合框获得键盘输入焦点时发送此消息。,在对话框中添加和编辑控件,控件是在系统内部定义的能够完成特定功能的控制程序单元。在应用程序中使用控件不仅能简化编程,还可完成常用的各种功能。添加控件的方法 控件的移动、删除和复制 对话框中的控件布局,添加控件的方法,在对话框中添加控件的方法有如下两种:在控件工具栏中选择某控件,此时的鼠标箭头在对话框中变成“”形状。在对话框指定位置单击鼠标左键,则此控件被添加到对话框的相应位置,再拖动选择框可改变控件的大小和位置。,添加控件的方法,在控件工具栏中选择某控件,并按住鼠标键不放,在移动鼠标到对话框的指定位置的过程中,用户会看到一个虚线框,下面带有该控件的标记

19、,然后释放鼠标,新添加的控件就出现在对话框中。,控件的移动、删除和复制,当单个控件或多个控件被选择后,按键盘的方向键或用鼠标拖动控件的选择框可移动控件。若在鼠标拖动过程中按住“Ctrl”键可复制控件,按“Delete”键可删除控件。,对话框中的控件布局,Visual C+6.0提供了一系列编辑对话框的控件布局工具。现说明如下:,对话框中的控件布局,对话框中的控件布局,对话框中的控件布局,与布局工具相对应的菜单命令,可选择“编排”命令下的命令选项,而且大部分的命令都有相应的快捷键,现说明如下:Align:对齐控制。Space Evently:空间分布。Make Same Size:使多个控件具有

20、相同尺寸。,对话框中的控件布局,Arrange Buttons:按钮布置。Center in Dialog:在对话框内居中。Size in Content:按内容定义尺寸。Auto Size:自动大小。,对话框中的控件布局,Flip:翻转。Tab Order:设置“Tab”键顺序。Guide Settings:网格、标尺等辅助工具的设置。Test:测试对话框性能。,常用控件的应用例程,【例7-2】为【例7-1】新建的对话框增加控件,构成一个学生个人信息登记的操作界面,包含学生姓名、学号、性别、学院及其他信息。(光盘:第7章例7_17_2),对话框的编程,前面已经为对话框添加了控件,在程序运行中

21、我们仍然无法看到对话框,无法对对话框界面进行操作。为了使对话框工作起来,使用户和对话框实现交互功能,需要对对话框进行编程。,对话框的编程,【例7-3】为【例7-1】在菜单栏中增加“显示对话框”菜单项,下拉子菜单为“显示”。选择“显示”命令,打开用户自定义对话框。在对话框中进行相应信息的输入,单击按钮,在“信息”对应的文本框中显示输入的学生信息。到这里,已经可以看到用户定义的对话框,下面增加代码实现用户与对话框的交互。,【例7-3】的运行结果,上 机 练 习,在对话框模式下创建一个简单的计算器,能进行加、减、乘、除运算(光盘:第7章上机练习)。,lianxi7_1运行结果,习 题,在对话框模式下,建立一个用户登陆界面,当用户名为“学生”,口令为“student”时,打开“regist”对话框。,习 题,(2)编写一个程序,其中有一个汽车类vehicle,它具有一个需要传递参数的构造函数,类中的数据成员包括:车轮个数wheels和车重weight作为保护成员;小车类car是它的私有派生类,其中包含载人数passengers;卡车类truck是vehicle的私有派生类,其中包含载人数passengers和载重量payload。每个类都需有相关数据的输出方法。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号