欢迎来到天天文库
浏览记录
ID:44942746
大小:1.96 MB
页数:96页
时间:2019-11-05
《第09讲--对话框及常用控件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第九讲对话框及常用控件中国地质大学(武汉)计算机学院C++语言程序设计本章内容主要包括包含控件的对话框资源的建立,对话框类和对话框资源的关联,利用对话框类来操纵对话框资源,话框框的消息处理,话框框中控件的访问。要求了解动画控件的使用、话框框资源的建立方法和常见属性的含义,熟悉利用控件属性对话框设置控件属性的方法及常见控件属性的含义,掌握对对话框消息WM_INITDIALOG的响应,会利用类向导添加控件变量和消息映射函数,熟练掌握控件类型的无关访问。教学要点对话框及常用控件9.1对话框概述9.2对
2、话框程序的创建9.3标准Windows控件9.1对话框概述界面是Windows程序设计中的一种重要的接口,上一章节讲的菜单、工具栏和状态栏就是重要的用户接口,出此之外,对话框和控件也是组成界面的重要元素。这一章讲解如何编写基于对话框的应用程序,在界面中放置什么样的控件。当创建了一个包含各种控件的对话框资源后,控件如何来响应用户的各种操作。本节内容:9.1.1对话框简介9.1.2对话框的分类9.1.3对话框的组成9.1.1对话框简介对话框是一种用户界面,它为用户提供了一种标准的处理数据的方法。因为
3、大部分的对话框是作为对菜单的单击响应而显示出来的(在Word软件中,单击菜单项后有…的菜单,看都会出现哪些对话框),因此对话框常常被看作是用户菜单命令的扩展。从程序员角度来看,对话框和控件都是窗口,查看MSDN中的MFC组织图可以看到,它们都是从CWnd类派生来的,这正好说明了“对话框和控件都是窗口”。因此,对对话框的操作,经常要使用窗口的成员函数来进行。9.1.2对话框的分类1.模态对话框在对话框关闭之前,用户无法在应用程序的其它窗口中进行工作的对话框称为模态对话框。例如Windows的各种应
4、用软件中的OpenFile对话框,用户不能在应用程序的其它地方工作,直到对话框关闭。2.非模态对话框对话框保留在屏幕的同时,用户还可以在应用程序其它窗口中进行工作的对话框称为非模态对话框。例如,Word字处理软件中的Find和Replace对话框就是非模态对话框的一个很好的例子。9.1.3对话框的组成对话框模板对话框模板定义了对话框的特性(比如大小、位置和风格)以及对话框中每个控件的类型和位置。程序员不仅可以使用对话框资源编辑器建立对话框资源模板外,还可以根据需要在内存中创建对话框模板。当对话框
5、模板创建后,程序员好可以在创建和管理对话框时动态地改变部分控件的信息,如禁止、变灰、改变标题和大小。对话框模板可以看作对话框应用程序的一种用户接口,用户在应用程序的使用中,看到的都是资源模板中的东西。9.1.3对话框的组成(续)对话框类从CDialog类派生的对话框类提供编程接口来管理与对话框模板相关联的对话框。CDialog类的许多成员函数与对话框编程密切相关,可供程序员调用。由于对话框是一种窗口,因此相应的对话框类必须与一个Windows窗口相联系,而对话框资源模板就是用于创建这个Windo
6、ws窗口及其包含在其中的控件。对话框类可以看作对话框应用程序的一种程序员接口,用户对应用程序操作,后台调用的都是该类的成员函数来完成的。9.2对话框程序的创建9.2.1一个对话框程序9.2.2创建对话框资源模板9.2.3利用对话框类CDialog操纵对话框9.2.4初始化对话框9.2.5对话框的调用9.2.6对话框的消息处理9.2.1一个对话框程序1.程序功能该应用程序具有认证的功能:当该程序运行时,首先弹出一个“密码验证”对话框,让用户输入其用户名和密码。用户需要输入用户名“good”和用户密
7、码“good”后才能进入主界面,若有一个输入错误,都不能进入。2.程序类型该程序重点演示一个模态对话框,它是利用AppWizard创建的一个基于MFC的单文档应用程序。在该程序的主界面出现之前显示“密码验证”对话框。静态图片编辑框静态文本组框按钮复选框单选框组合框列表框列表视图树形视图标签9.2.2创建对话框资源模板模板文件对话框模板描述了对话框中各控件类型和排列位置,不论是模态还是非模态对话框,都需要对话框模板。对话框模板存储在对话框资源中,这和菜单类似。对话框资源中存储的是对话框脚本,为了了
8、解资源的脚本,我们查看一下脚本文件MfcExam.rc,屏幕看到的是生成的单文档应用程序的对话框的脚本。资源文件(.rc)中有关描述对话框模板的文本9.2.3利用对话框类CDialog操纵对话框1.利用类向导创建对话框类进入类向导后,如果从未给刚才建立的对话框资源模板建立对应的对话框类,则类向导会发现这是一个新的对话框资源模板,类向导提问是否要为这个新的对话框资源模板创建一个新的类。选择“OK”按钮,会弹出一个CreateNewClass的对话框。若选择Cancel后,也可以在类向导中通过增加一
此文档下载收益归作者所有