次の方法で共有


CDialog::Create

リソースからダイアログ ボックス テンプレートを使ってモードレス ダイアログ ボックスを作成します。

virtual BOOL Create(
   LPCTSTR lpszTemplateName,
   CWnd* pParentWnd = NULL 
);
virtual BOOL Create(
   UINT nIDTemplate,
   CWnd* pParentWnd = NULL 
);

パラメーター

  • lpszTemplateName
    ダイアログ ボックス テンプレート リソース名を表す null で終わる文字列。

  • pParentWnd
    ダイアログ オブジェクトが所属する CWnd 型の親ウィンドウ オブジェクトへのポインター。 NULL の場合は、ダイアログ オブジェクトの親ウィンドウがアプリケーションのメイン ウィンドウになります。

  • nIDTemplate
    ダイアログ ボックス テンプレート リソースの ID 番号。

戻り値

ダイアログ ボックスが正しく作成されて、初期化された場合は、いずれの形式でも 0 以外を返します。それ以外の場合は 0 を返します。

解説

コンストラクター内部から Create 関数を呼び出すことも、コンストラクターを起動した後で呼び出すこともできます。

ダイアログ テンプレート リソースにテンプレート名でもテンプレート ID 番号 (例 : IDD_DIALOG1) でもアクセスできるように、2 つの形式の Create メンバー関数が用意されています。

いずれの形式でも、親ウィンドウ オブジェクトへのポインターを渡します。 pParentWnd が NULL の場合は、作成されるダイアログ ボックスの親ウィンドウまたはオーナー ウィンドウは、アプリケーションのメイン ウィンドウに設定されます。

Create メンバー関数は、ダイアログ ボックスを作成後すぐに戻ります。

親ウィンドウを作成したときにダイアログ ボックスを表示する場合は、ダイアログ ボックス テンプレートで WS_VISIBLE スタイルを使用します。 それ以外の場合は、ShowWindow 関数を呼び出す必要があります。 ダイアログ ボックス スタイルやアプリケーションの詳細ついては、Windows SDK の DLGTEMPLATE 構造体と『MFC リファレンス』の「ウィンドウ スタイル」を参照してください。

Create 関数で作成したダイアログ ボックスを破棄するには、CWnd::DestroyWindow 関数を使います。

使用例

void CMyDialog::OnMenuShowSimpleDialog()
{
   //m_pSimpleDialog initialized to NULL in the constructor of CMyDialog class
   m_pSimpleDlg = new CSimpleDlg();
   //Check if new succeeded and we got a valid pointer to a dialog object
   if(m_pSimpleDlg != NULL)
   {
      BOOL ret = m_pSimpleDlg->Create(IDD_SIMPLEDIALOG, this);

      if(!ret)   //Create failed.
         AfxMessageBox(_T("Error creating Dialog"));

      m_pSimpleDlg->ShowWindow(SW_SHOW);
   }
   else
   {
      AfxMessageBox(_T("Error Creating Dialog Object"));
   }
}

必要条件

**ヘッダー:**afxwin.h

参照

参照

CDialog クラス

階層図

CDialog::CDialog

CWnd::DestroyWindow

CDialog::InitModalIndirect

CDialog::DoModal

CreateDialog

その他の技術情報

CDialog のメンバー