类CPropertyPage的对象表示一张属性表的各页,或者说是被看作是标签对话框。同标准对话框一样,要为属性表中每一页从 CPropertyPage类中派生一个新类。要使用CPropertyPage派生对象,首先要创建一个CPropertySheet对象,然后为属性 表中的每一页创建一个对象。为表中的每一页调用CPropertySheet::AddPage函数,然后对一个模式属性表调用 CPropertySheet::DoModal函数来显示此属性表。对一个非模式属性表调用CPropertySheet::Create来显示此属性 表。
你可以创建一种被称为向导的标签对话框,这种对话框包括一个属性表,该表有一系列属性页来引导 用户进行一项操作的每一个步骤,比如说设置一个设备或创建一个时事通讯。在一个向导类型的标签对话框中属性页没有标签,每次只有一个属性页是可见的。而 且,一个向导类型的对话框没有OK和Apply Now按钮,代替它们的是一个Back按钮,一个Next或Finish按钮和一个Cancel按钮。
一个属性表单由一个或多个属性页组成,有效地解决了大量信息无法在一个对话框上显示的问题,并提供了对信息分类和组织管理的功能。
首先创建三个属性页,(也可以从对话框资源中创建,改变一些属性即可)。
然后为了创建一个属性表单,首先要创建一个CPropertySheet对象,接下来,为每一个属性页创建一个对象(CPropertyPage类型),并调用AddPage函数添加每一个属性页,然后调用DoModal函数显示一个模态属性表单,或者调用Create函数创建一个非模态属性表单。
创建一个向导类型的对话框,应该遵循创建一个标准属性表单的步骤来实现,但在调用属性表单对象的DoModal函数之前,应该首先调用
SetWizardMode函数(调用之后,对话框变成一种向导的模式,底部按钮变成,上一步,下一步,取消,的按钮,即sets the PSH_WIZARD flag ),但是对于第一页,我们不需要上一步这个按钮,对于最后一页,不需要下一步这个按钮,调用SetWizardButtons成员函数,设置向导对话框上的按钮,需要重写OnSetActive函数(他是一个虚函数),(This member function is called by the framework when the page is chosen by the user and becomes the active page),
处理页面,必须是已经有选项了,才可以跳到下一页,重写虚函数OnWizardNext,(当点击next按钮时候调用函数,返回值-1的话,不可以跳到下一页),更新与控件相关联的变量数据,需调用updatedata函数。
为地点列表框添加一些数据,必须是在属性页显示之前向列表框中添加地点。所以添加消息处理函数wm_initdlglog函数,在MFC编程中,对控件的操作都是通过相关的MFC类来完成的,对于列表框,对应的类是CListBox,用其成员函数AddString,向列表框添加字符串.
要接受用户在向导中的选择,就是把他显示在视类窗口中.