用Visual C++创建自定义的应用程序向导 | |||||
---|---|---|---|---|---|
http://www.sina.com.cn 2006年01月16日 16:12 天极yesky | |||||
应用程序向导是一种用来简化用户操作的程序,在Microsoft 的所有软件产品中都存在应用程序向导,例如Office2000 中的Web 页向导就是一个十分典型的应用程序向导,Visual C++提供的"App Wizard"也是一个应用程序向导。本实例给出了实现自己的应用程序向导的方法,程序编译运行后的界面效果如图一所示:![]() 图一、自定义向导程序界效果图 一、编程方法 在Visual C++编程中,可以使用MFC提供的类CPropertySheet和类CPropertyPage方便地编写一个向导程序。首先我们来介绍一下类CPropertySheet 和类CPropertyPage。属性页类CPropertyPage 是从类CDialog中派生出来的,具有Diaglog的基本性质,不过需要注意的是在将一个对话框模板关联到CpropertyPage类时对话框模板的样式必须设置为"Child"。类CPropertySheet 是一个属性表,它也代表一个窗体,相当一个容器,用来存放所有的属性页CpropertyPage,CpropertySheet类不是从Cdialog类派生出来的,但是该类对象可以进行普通对话框似的操作,如使用DoModal()函数显示属性表后,它就包含了"取消"、"上一步"、"下一步" 等基本按钮。为了将各个属性页添加到属性表中,可以调用CpropertySheet::AddPage( CPropertyPage *pPage )。需要读者朋友注意的一点是,一般情况下不直接使用CpropertySheet、CpropertyPage类,而是分别使用它们的子类,具体参见程序代码部分。 将属性页添加到属性表中之后,就需要协调它们的显示,也就是要决定某个属性页具体显示"取消、上一步、下一步、完成、帮助"等几个基本按钮中的哪些按钮。在属性表中的某一属性页为当前页时,会触发OnSetActive事件,所以只需要对每一个属性页重载该函数来处理相应的工作。例如,当显示第一页时,由于不存在"上一步",故在该属性页的OnSetActive()函数中需要添加如下代码:
同样在显示中间页时应该设置成即有"上一步",也有"下一步",代码为:
最后在显示最后一页时只显示"完成"和"上一步",代码为:
从上面的代码可以看出,决定当前属性页使用哪个按钮关键是使用了CPropertySheet ::SetWizardButtons()函数,该函数的原型为:
|