次の方法で共有


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

参照

関連項目

CDialog クラス

階層図

CDialog::CDialog

CWnd::DestroyWindow

CDialog::Create

CreateDialogIndirect