您可以创建一个名为【巫师】的特殊类型的属性表,其中包含一系列对话框,用于指导用户执行操作步骤,例如设置设备或创建生日卡。在向导属性表中,页面没有制表符,并且一次只能看到一个页面。此外,向导属性表不是具有“确定”和“立即应用”按钮,而是具有“后退”按钮,“下一步”或“完成”按钮和“取消”按钮。要告诉属性表哪些按钮要启用,请使用带有PSWIZB_BACK,PSWIZB_NEXT,PSWIZB_FINISH和PSWIZB_DISABLEDFINISH值的PSM_SETWIZBUTTONS消息。您将像标准属性表一样创建和初始化向导属性表,但必须在PROPSHEETHEADER结构的dwFlags中成员中包含PSH_WIZARD值。系统忽略pszCaption成员;而是将当前页面的标签放在属性表的标题栏中。当用户从一个页面切换到下一个页面时,系统使用当前页面的标签更新标题。
您应该使用以下值来设置向导属性表中元素的大小。使用这些值可确保您的页面符合Window标准。
WIZ_BODYCX | 向导属性表中页面正文的宽度。身体不包括位图区域。 |
WIZ_BODYX | 向导属性表中页面正文的左上角的水平坐标。对于页面正文的垂直坐标使用零。 |
WIZ_CXBMP | 向导属性表页面中位图区域的宽度。使用WIZ_CYDLG作为位图区域的高度。 |
WIZ_CXDLG | 向导属性表中页面的宽度。 |
WIZ_CYDLG | 向导属性表中页面的高度。 |
向导属性表中页面的对话框过程将接收与标准属性表页面相同的所有相同通知消息。另外,向导属性表页面接收标准属性表页面不接收的三个通知消息:PSN_WIZBACK,PSN_WIZNEXT和PSN_WIZFINISH.当用户选择“后退”,“下一步”或“完成”按钮时,向导页面会收到这些通知。
当用户选择“返回”或“下一步”按钮时,属性表将自动前进到上一页或下一页。响应于PSN_WIZBACK或PSN_WIZNEXT通知,应用程序可以通过将DWL_MSGRESULT值设置为-1来阻止属性表的前进。要跳到上一页或下一页以外的页面,应用程序应将DWL_MSGRESULT设置为要显示的对话框的标识符。
当用户单击完成按钮时,系统会自动销毁向导属性表。响应于PSN_WIZFINISH通知消息,应用程序可以通过将DWL_MSGRESULT设置为非零值来阻止向导的销毁。