1.通用对话框概述
通用对话框(common dialog)是一种Windows系统定义的对话框,这种对话框将不同用户的同一类操作过程标准化,以一种通用的形式实现对话框复杂的功能。通用对话框的使用非常方便,程序员不必像一般对话框那样创建对话框资源和对话框类,就可以在程序中直接使用通用对话框,大大简化了编程工作。并且,程序员还可以定制通用对话框的外观和性能,使之能够适合于大多数的应用。
为了在MFC应用程序中使用通用对话框,MFC对这些通用对话框以类的形式进行了封装。所有通用对话框类都是从CCommonDialog类派生而来,而CCommonDialog类又是CDialog类的派生类。表1列出了MFC中的通用对话框类,有关这些通用对话框类的数据结构、构造函数和成员函数可以查阅MSDN文档。
表1 通用对话框
MFC通用对话框类定义在Windows通用对话框中Commdlg.dll中,这些类在路径"..\Microsoft Visual Studio\VC98\MFC\Include"下的Afxdlgs.h文件中进行了声明。使用通用对话框时必须用#include语句包含Afxdlgs.h文件。
这些通用对话框中,只有“查找和替换”对话框是非模态对话框,其他通用对话框都是模态对话框,它们使用方式也根据其所属类时进行不同的处理。
2.使用通用对话框
对于模态通用对话框,通过调用DoModal()函数打开对话框。对于非模态通用对话框,通过调用Create()函数打开对话框。这主要介绍模态通用对话框的使用方法。
在程序中使用一个通用对话框通常遵循以下几个步骤。
(1)声明一个通用对话框类的对象
(2)修改相应的数据成员,或调用成员函数设置属性值,定制对话框。
(3)调用DoModal()函数打开对话框
(4)调用成员函数获取需要的结果。
例如,利用CColorDialog类可以很方便地打开一个颜色对话框,用于选择不同的颜色,如下代码所示。
CColorDialog dlg; //声明颜色对话框类的对象
if(dlg.DoModal()==IDOK) //打开颜色对话框
{
m_color=dlg.GetColor; //获取选中的颜色值
}