次の方法で共有


CDialog::InitModalIndirect

メモリに構築できます。ダイアログ ボックスのテンプレートを使用してモーダル ダイアログ オブジェクトを初期化するには、このメンバー関数を呼び出します。

BOOL InitModalIndirect(
   LPCDLGTEMPLATE lpDialogTemplate,
   CWnd* pParentWnd = NULL,
   void* lpDialogInit = NULL
);
   BOOL InitModalIndirect(
   HGLOBAL hDialogTemplate,
   CWnd* pParentWnd = NULL
);

パラメーター

  • lpDialogTemplate
    ダイアログ ボックスの作成に使用されるダイアログ ボックス テンプレートを含むメモリへのポインター。このテンプレートは Windows SDKに説明されているように DLGTEMPLATE の構造とコントロール情報の形式になります。

  • hDialogTemplate
    ダイアログ ボックスのテンプレートを格納するグローバル メモリへのハンドルが含まれます。このテンプレートは、ダイアログ ボックスの各コントロールの DLGTEMPLATE 構造とデータの形式です。

  • pParentWnd
    ダイアログ オブジェクトの (CWnd 型の) 親ウィンドウまたはオーナー ウィンドウ オブジェクトへのポインター。これは null場合は、ダイアログ オブジェクトの親ウィンドウは、メイン アプリケーション ウィンドウに設定されます。

  • lpDialogInit
    DLGINIT のリソースへのポインター。

戻り値

ダイアログ オブジェクトが正常に作成され初期化された場合は、; それ以外の場合は 0。

解説

モーダル ダイアログ ボックスを間接的に作成するには、最初にグローバル メモリのブロックを割り当て、ダイアログ ボックス テンプレートで定義します。次に、ダイアログ ボックスのオブジェクトを構築するに CDialog の空のコンストラクターを呼び出します。次に、メモリのダイアログ ボックス テンプレートに、ハンドルを格納する呼び出し InitModalIndirect。Windows のダイアログ ボックスは DoModal のメンバー関数が呼び出されると、後で作成され、表示されます。

ActiveX コントロールをダイアログ ボックスは DLGINIT のリソースで提供される追加情報が必要です。詳細については、サポート技術情報の文書「HOWTO を Q231591、参照: 使用する ActiveX コントロールの MFC ダイアログを作成するには、ダイアログ テンプレートを」。サポート技術情報の文書は、MSDN ライブラリの Visual Studio のドキュメント、または https://support.microsoft.com で参照できます。

必要条件

ヘッダー: afxwin.h

参照

関連項目

CDialog クラス

階層図

DialogBoxIndirect

CDialog::DoModal

CWnd::DestroyWindow

CDialog::CDialog