CDialog::CreateIndirect
メモリのダイアログ ボックス テンプレートからモードレス ダイアログ ボックスを作成するには、このメンバー関数を呼び出します。
virtual BOOL CreateIndirect(
LPCDLGTEMPLATE lpDialogTemplate,
CWnd* pParentWnd = NULL,
void* lpDialogInit = NULL
);
virtual BOOL CreateIndirect(
HGLOBAL hDialogTemplate,
CWnd* pParentWnd = NULL
);
パラメーター
lpDialogTemplate
ダイアログ ボックスの作成に使用されるダイアログ ボックス テンプレートを含むメモリへのポインター。このテンプレートは Windows SDKに説明されているように DLGTEMPLATE の構造とコントロール情報の形式になります。pParentWnd
ダイアログ オブジェクトの親ウィンドウ オブジェクト (CWnd 型の) へのポインター。これは null場合は、ダイアログ オブジェクトの親ウィンドウは、メイン アプリケーション ウィンドウに設定されます。lpDialogInit
DLGINIT のリソースへのポインター。hDialogTemplate
ダイアログ ボックスのテンプレートを格納するグローバル メモリへのハンドルが含まれます。このテンプレートは、ダイアログ ボックスの各コントロールの DLGTEMPLATE 構造とデータの形式です。
戻り値
ダイアログ ボックスが正常に作成され初期化された場合は、; それ以外の場合は 0。
解説
CreateIndirect のメンバー関数は、ダイアログ ボックスを作成した直後に戻ります。
親ウィンドウの作成時にダイアログ ボックスが表示された場合は、ダイアログ ボックス テンプレートで WS_VISIBLE のスタイルを使用します。それ以外の場合は、によってコントロールが表示されます ShowWindow を呼び出す必要があります。詳細については、テンプレートで他のダイアログ ボックスのスタイルがどのように指定する方法 Windows SDKの DLGTEMPLATE の構造体を参照してください。
CreateIndirect 関数によって作成されるダイアログ ボックスを破棄するときに CWnd::DestroyWindow 関数を使用します。
ActiveX コントロールをダイアログ ボックスは DLGINIT のリソースで提供される追加情報が必要です。詳細については、サポート技術情報の文書「HOWTO を Q231591、参照: 使用する ActiveX コントロールの MFC ダイアログを作成するには、ダイアログ テンプレートを」。サポート技術情報の文書は、MSDN ライブラリの Visual Studio のドキュメント、または https://support.microsoft.com で参照できます。
必要条件
ヘッダー: afxwin.h