第10章 对话框的应用
Windows应用程序经常通过对话框与用户进行通信,因此VC 6.0提供了对对话框应用程序的支持,提供了CDialog类管理对话框。VC对话框编辑器提供了可视化的设计对话框的方法,类向导提供了对话框中控件的初始化和验证过程,以及获取用户输入值的过程。本章介绍有关对话框的应用。
10.1 对话框的工作方式、种类和创建方法
在Windows程序中,当需要从用户处获取信息时,就需要创建对话框,如程序设置和选项。Windows中分为两种类型的对话框:模式对话框和非模式对话框。这两者都可以包含所有类型的控件,并且都可以包含分页逻辑分组控件。本节就介绍有关对话框的工作方式、种类及其创建方法。
10.1.1 对话框在应用程序中的工作方式
对话框的作用是用于显示信息和从用户处获取信息,即用户使用对话框与程序之间进行"对话"。在对话框的生命周期内,程序定义命令处理函数。当创建对话框后,发生指定事件时,程序会自动调用相应的命令处理函数,比如,接收到按键、显示信息等,用户与程序之间通过对话框不停地进行"对话",直到完成任务,程序关闭对话框。
MFC中通过对话框模板资源和对话框类管理对话框的实现。其中对话模板资源指定了对话框的控件和布局,指定了对话框的特性,包括大小、位置、样式和类型以及对话框控件的位置。而继承自CDialog的对话框类,负责在程序中管理对话框。在对话框中通过其中的控件显示和搜集信息,而对话框中既可以包含第7章中介绍过的Windows标准控件,也可以是由第三方开发的ActiveX控件,还可以包含用户自定制的控件。
虽然对话框的功能千差万别,但是创建步骤是类似的。
(1)使用对话框编辑器设计对话框,并创建对话模板资源。在此步骤中可以根据需要添加需要包含的控件,并定制对话框和这些控件的样式、大小、位置等外观特性。
(2)使用类向导创建对话类。在此步骤中,创建派生自CDialog类的自定义类完成程序的特有功能。
(3)使用类向导连接对话资源的控件到对话类的消息处理函数。在此步骤中,需要为对话框中控件添加处理函数,用于完成与用户的交互。
(4)使用类增加与对话框控件相连的数据成员,并为控件指定对话数据交换和对话数据验证。此步骤是实现用户输入与程序数据之间相连的关键步骤,只有在数据交换和数据验证中处理数据成员后,才可以将用户输入的数据真正更新到数据成员中。
在后面的小节中会详细讲述这些步骤的实现方法。