次の方法で共有


CDialog::CreateIndirect

更新 : 2007 年 11 月

メモリ上のダイアログ ボックス テンプレートからモードレス ダイアログ ボックスを作成します。

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

パラメータ

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

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

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

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

戻り値

ダイアログ ボックスが正しく作成されて初期化された場合は、0 以外を返します。それ以外の場合は 0 を返します。

解説

CreateIndirect メンバ関数は、ダイアログ ボックスを作成後すぐに戻ります。

親ウィンドウを作成したときにダイアログ ボックスを表示する場合は、ダイアログ ボックス テンプレートで WS_VISIBLE スタイルを使用します。それ以外の場合は、ShowWindow 関数を呼び出す必要があります。テンプレートでその他のダイアログ ボックスのスタイルを指定する方法については、Windows SDK の DLGTEMPLATE 構造体の説明を参照してください。

CreateIndirect 関数で作成したダイアログ ボックスを破棄するには、CWnd::DestroyWindow 関数を使います。

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 クラス

階層図

CDialog::CDialog

CWnd::DestroyWindow

CDialog::Create

CreateDialogIndirect

その他の技術情報

CDialog のメンバ