属性表单与向导

来源:互联网 发布:网络直播用英语怎么说 编辑:程序博客网 时间:2024/05/22 14:52

 

 

▲创建属性表单

1.创建属性页

在资源视图中选择插入菜单,在插入资源对话框中展开Dialog项,其中提供三种大小的属性页资源,选择其中一种规格的属性页 (IDD_PROPPAGE_LARGE)插入到工程资源中,根据属性表单中属性页的数量,插入相同数量的属性页到工程资源中

2.在属性页上右键菜单的属性中修改每个属性页的ID(IDD_PROP1),Caption(page1),在资源视图列表中属性页右键菜单的属性中修改每个属性页的语言(Chinese [P.R.C])。Caption决定属性页标签上显示的文字,语言决定该页的文字编码。

3. 打开类向导,新建一个类,填写类名(CPorp1),选择基类为CPropertyPage,选择ID(IDD_PROP1)。根据属性页的数量添加相同数量的类。

4.打开类向导,新建一个类,填写类名(CPropSheet),选择基类为CPropertySheet。

5.为CPropSheet类增加成员变量

CPorp1 prop1      //属性页对象

...                         //添加与属性页数量相同的属性页对象

6.在CPropSheet类的构造函数中添加代码

AddPage(&m_prop1)    //将属性页对象添加到属性表单中

...                                  //添加其他属性页

7.显示属性表单

CPropSheet propsheet(...)           //按指定的标题,类型实例化属性表单对象

propsheet.DoModal()                  //显示一个模态的属性表单

//////////////////////////////////////////////////////////////////////

CPropSheet propsheet(...)          //按指定的标题,类型实例化属性表单对象

propsheet.Create()                     //创建并显示一个非模态的属性表单

 

▲和对话框一样,属性表单也分为模态和非模态两种类型,应注意非模态属性表单需要自己调用DestroyWindow()销毁窗口,非模态属性表单不会创建按钮,需要自行创建,如下例:

 

CPropSheet propsheet(...)          //按指定的标题,类型实例化属性表单对象

CButton button                           //创建按钮对象

propsheet.Create()                     //创建并显示一个非模态的属性表单

 

propsheet.SetWindowPos(...)     //设置属性表单窗口大小以容纳按钮

button.Create(...&propsheet...)  //创建按钮并添加进属性表单窗口

-----------------------------------------------------------------------------------------------------

 

▲创建向导

创建向导的1~6与创建属性表单步骤相同

7.显示向导

CPropSheet propsheet(...)           //按指定的标题,类型实例化属性表单对象

propsheet.SetWizardMode()        //指定为向导模式 

propsheet.DoModal()                  //显示一个模态的向导

//////////////////////////////////////////////////////////////////////

CPropSheet propsheet(...)          //按指定的标题,类型实例化属性表单对象

propsheet.SetWizardMode()        //指定为向导模式  

propsheet.Create()                     //创建并显示一个非模态的向导

 

▲注意非模态向导需要自己调用DestroyWindow()销毁窗口,非模态属性表单不会处理点击按钮的行为,需要自行处理

 

▲SetWizardButtons()

设置向导中出项哪些按钮(上一步,下一步,完成...)

 

▲OnSetActive()

CPropertyPage类的成员函数,当在属性表单或向导中,属性页被激活时由系统调用该函数,该函数为虚函数,在子类中可重写此函数。

 

▲每个属性页与属性表单或向导是子窗口与父窗口的关系