CPropertySheet::DoModal
显示一个模式属性表。
virtual INT_PTR DoModal();
返回值
IDOK 或 IDCANCEL,如果函数运行成功;否则0或-1。如果属性表中建立为向导(请参见 SetWizardMode),DoModal 返回 ID_WIZFINISH 或 IDCANCEL。
备注
返回值对应于关闭属性表控件的ID。此函数返回后,销毁了与属性表和所有页相对应的窗口。对象存在。通常,在 DoModal 返回 IDOK后,您 CPropertyPage 从对象中检索数据。
若要显示非模式属性表,请调用 创建。
在属性页从其对应的对话框资源时创建,则会导致首次异常。在页中创建之前,会产生更改对话框资源的样式属性页添加到所需的样式。由于资源通常是只读的,则引发异常。系统处理异常,并将复制已修改的资源。因此首次异常可能会忽略。
说明 |
---|
如果编译与异步异常处理模型,必须由操作系统处理此异常。有关异常处理模型的更多信息,请参见 /EH(异常处理模型)。在这种情况下,不要包装调用具有c. C++ try-catch块的 CPropertySheet::DoModal 在其中catch处理所有异常,例如,catch (...)。此块将异常。操作系统计划句柄和导致不可预知的行为。但是,可以安全地使用C++异常处理具有特定的异常类型或结构化异常处理访问冲突异常传递给操作系统的位置。 |
若要避免生成此首次异常,可以手动确保属性表具有正确的 窗口样式。需要设置特性下面的样式:
DS_3DLOOK
DS_CONTROL
WS_CHILD
WS_TABSTOP
可以使用以下选项样式,而不会导致首次异常:
DS_SHELLFONT
DS_LOCALEDIT
WS_CLIPCHILDREN
因为它们不是使用属性表兼容,请禁用其他Windows样式。本主题不适用于扩展样式。设置这些标准样式适当地确保不必修改属性表和避免生成首次异常。
示例
为 CPropertySheet::AddPage参见示例。
要求
标头: afxdlgs.h