次の方法で共有


CDialog::InitModalIndirect

更新 : 2007 年 11 月

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

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 リソースで提供される追加情報を必要とします。詳細については、サポート技術情報の「HOWTO: Use a Dialog Template to Create a MFC Dialog with an ActiveX Control (Q231591)」を参照してください。サポート技術情報の文書は、MSDN ライブラリの Visual Studio のドキュメント、または https://support.microsoft.com で参照できます。

必要条件

ヘッダー : afxwin.h

参照

参照

CDialog クラス

階層図

DialogBoxIndirect

CDialog::DoModal

CWnd::DestroyWindow

CDialog::CDialog

その他の技術情報

CDialog のメンバ