次の方法で共有


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

参照

参照

CDialog クラス

階層図

CDialog::CDialog

CWnd::DestroyWindow

CDialog::Create

CreateDialogIndirect

その他の技術情報

CDialog のメンバー