次の方法で共有


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