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