次の方法で共有


CDialog::InitModalIndirect

メモリ上に作成したダイアログ ボックス テンプレートを使ってモーダル ダイアログ ボックスを初期化します。

BOOL InitModalIndirect(
   LPCDLGTEMPLATE lpDialogTemplate,
   CWnd* pParentWnd = NULL,
   void* lpDialogInit = NULL
);
   BOOL InitModalIndirect(
   HGLOBAL hDialogTemplate,
   CWnd* pParentWnd = NULL
);

パラメーター

  • lpDialogTemplate
    ダイアログ ボックスを作成するためのダイアログ ボックス テンプレートを持つメモリへのポインター。 このテンプレートは DLGTEMPLATE 構造体の形式であり、コントロールの情報を保持します。詳細については、Windows SDK を参照してください。

  • hDialogTemplate
    ダイアログ ボックス テンプレートを持つグローバル メモリへのハンドル。 このテンプレートは、DLGTEMPLATE 構造体の形式で、ダイアログ ボックスのコントロールについてのデータを持ちます。

  • pParentWnd
    ダイアログ オブジェクトを所有する CWnd 型の親ウィンドウまたはオーナー ウィンドウ オブジェクトへのポインター。 NULL の場合は、ダイアログ オブジェクトの親ウィンドウがアプリケーションのメイン ウィンドウになります。

  • lpDialogInit
    DLGINIT リソースへのポインター。

戻り値

ダイアログ オブジェクトを正しく作成して、初期化した場合は 0 以外の値を返します。それ以外の場合は 0 を返します。

解説

間接的にモーダル ダイアログ ボックスを作成するには、まずグローバル メモリ ブロックを割り当て、ダイアログ ボックス テンプレートを設定します。 その後、ダイアログ ボックス オブジェクトを構築するために空の CDialog コンストラクターを呼び出します。 次に、メモリ上のダイアログ ボックス テンプレートへのハンドルを格納するために、InitModalIndirect を呼び出します。 Windows のダイアログ ボックスは、DoModal メンバー関数が呼び出されたときに作成、表示されます。

ActiveX コントロールを持つダイアログ ボックスは、DLGINIT リソースで提供される追加情報を必要とします。 詳細については、「サポート技術情報」(knowledge Base) の記事 Q231591、「「HOWTO:ダイアログ テンプレート MFC ダイアログ ActiveX コントロールを作成するために使用します。サポート技術情報の文書は、MSDN ライブラリの Visual Studio のドキュメント、または https://support.microsoft.com で参照できます。

必要条件

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

参照

参照

CDialog クラス

階層図

DialogBoxIndirect

CDialog::DoModal

CWnd::DestroyWindow

CDialog::CDialog

その他の技術情報

CDialog のメンバー