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