WEB开发网
开发学院软件开发VC 用Visual C++创建自定义的应用程序向导 阅读

用Visual C++创建自定义的应用程序向导

 2008-11-14 19:37:15 来源:WEB开发网   
核心提示: CPropertySheet* pParent=(CPropertySheet*)GetParent(); // 获得属性表的指针pParent->SetWizardButtons(PSWIZB_NEXT); // 设置属性表的显示按钮只为下一步SetDlgItemText(IDC_

CPropertySheet* pParent=(CPropertySheet*)GetParent(); // 获得属性表的指针
pParent->SetWizardButtons(PSWIZB_NEXT); // 设置属性表的显示按钮只为下一步
SetDlgItemText(IDC_TEXT1,"这是向导的第一步"); >

同样在显示中间页时应该设置成即有"上一步",也有"下一步",代码为:

CPropertySheet* pParent=(CPropertySheet*)GetParent();
pParent->SetWizardButtons(PSWIZB_NEXT|PSWIZB_BACK);
SetDlgItemText(IDC_TEXT2,"这是向导的第二步"); >

最后在显示最后一页时只显示"完成"和"上一步",代码为:

CPropertySheet* pParent=(CPropertySheet*)GetParent();
pParent->SetWizardButtons(PSWIZB_FINISH|PSWIZB_BACK);
SetDlgItemText(IDC_TEXT3,"这是向导的第三步"); >

从上面的代码可以看出,决定当前属性页使用哪个按钮关键是使用了CPropertySheet ::SetWizardButtons()函数,该函数的原型为:

void SetWizardButtons( DWORD dwFlags );

参数dwFlags定义了属性页上具体显示那些导航按钮,该值是下列标志的组合:PSWIZB_BACK (Back button)、PSWIZB_NEXT( Next button)、PSWIZB_FINISH(Finish button)、PSWIZB_DISABLEDFINISH(Disabled Finish button)。

因为CpropertySheet、CPropertyPage类不是一个可修改的资源,所以在程序中会发现改变向导按钮的样式会很困难,例如不能在"上一步"、"下一步就"等按钮上添加图标等;也不能修改向导按钮的位置。为了实现一个性化向导的目的,我们可以不使用CPropertySheet类和CPropertyPage类,而自行设计一个向导程序。设计的基本思路是:采用标准的向导的工作方式,每一步就是一个对话框,向导本身也是一个对话框,用来容纳每步对话框;当点击"下一步"或"上一步"时,将相应的对话框定位到要显示的位置;因为向导一般都包含很多步,每一步对应一个页,为了管理这些页,我们可以创建一个链表来管理每一步的对话框。具体实现参见代码部分。

Tags:Visual 创建 定义

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接