次の方法で共有


CPropertySheet::DoModal

モーダル プロパティ シートを表示します。

virtual INT_PTR DoModal();

戻り値

正常終了した場合は IDOK または IDCANCEL を返します。それ以外の場合は 0 または -1 を返します。 プロパティ シートがウィザード (「SetWizardMode」を参照) として確立された場合は、DoModal は ID_WIZFINISH または IDCANCEL のどちらかを返します。

解説

戻り値は、プロパティ シートを閉じるときに使ったコントロールの ID に対応します。 この関数から戻ると、プロパティ シートのウィンドウやすべてのページは破棄されます。 オブジェクト自身は存在したままです。 通常、DoModal が IDOK を返したときは、CPropertyPage オブジェクトからデータを取得します。

モードレス プロパティ シートを表示するには、Create を呼び出します。

対応するダイアログ リソースからプロパティ ページが作成されるとき、初回例外が発生する可能性があります。 これは、プロパティ ページによって、ページの作成前にダイアログ リソースのスタイルが必要なスタイルに変更されるためです。 通常、リソースは書き込み禁止であるため、例外が発生する可能性があります。 システムはこの例外を処理し、更新されたリソースのコピーを作成します。 このような処理により、初回例外は無視できるようになります。

注意

非同期例外処理モデルを使ってコンパイルする場合、この例外はオペレーティング システムで処理する必要があります。 例外処理モデルの詳細については、「/EH (例外処理モデル)」を参照してください。 この場合、CPropertySheet::DoModal の呼び出しを catch (...) のような C++ の try-catch ブロックで囲まないでください。catch はすべての例外を処理します。 このブロックによってオペレーティング システムが処理しようとしている例外も取り扱うことになり、予期しない動作になります。 C++ 例外処理ハンドラーを特定の例外タイプで使用するか、またはアクセス違反例外がオペレーティング システムに渡される構造化例外処理を使用すると安全です。

初回例外が生成されないようにするには、プロパティ シートに正しい ウィンドウ スタイル を手動で指定します。 プロパティ シートに対して次のスタイルを設定する必要があります。

  • DS_3DLOOK

  • DS_CONTROL

  • WS_CHILD

  • WS_TABSTOP

次のオプションのスタイルも、初回例外を出すことなく使用できます。

  • DS_SHELLFONT

  • DS_LOCALEDIT

  • WS_CLIPCHILDREN

これ以外の Windows スタイルはプロパティ シートと互換性がないため、すべて無効にします。 これは、拡張スタイルには当てはまりません。 これらの標準スタイルを適切に設定すると、プロパティ シートの変更が不要になり、初回例外が生成されることもなくなります。

使用例

CPropertySheet::AddPage」の例を参照してください。

必要条件

**ヘッダー:**afxdlgs.h

参照

参照

CPropertySheet クラス

階層図

CDialog::DoModal

CPropertySheet::Create

その他の技術情報

CPropertySheet のメンバー