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