BOOL Create( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );
BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );
Возвращаемое значение
Оба возврата отличны от нуля, если создание диалогового окна и инициализация было успешны, иначе 0.
Параметры
lpszTemplateName
Содержит строку с нулевым символом в конце, которая является именем ресурса шаблона диалогового окна.
pParentWnd
Указатель на родительский объект окна (типа CWnd) которому объект диалога принадлежит. Если это NULL родительское окно установлено к основному окну прикладной программы.
nIDTemplate
Содержит номер ID ресурса шаблона диалогового окна.
Замечания
Обращение Create, чтобы создать немодальное диалоговое окно, использующее шаблон диалогового окна из ресурса. Вы можете помещать обращени к Create внутри конструктора или вызывать его после того, как конструктор вызывается.
Две формы Create функции предусматривают доступ к ресурсу шаблона диалогового окна или по имени шаблона или по номеру ID (например, IDD_DIALOG1).
Для любой формы, передайте указатель на родительский объект окна. Если pParentWnd NULL диалоговое окно будет создано с родителем или набором окон владельцев к основному окну прикладной программы.
Create функция возвращается немедленно после того, как это создает диалоговое окно.
Используйте WS_VISIBLE стиль в шаблоне диалогового окна, если диалоговое окно появилось, когда родительское окно создано. Иначе, Вы должны вызвать ShowWindow.
Используйте CWnd::DestroyWindow чтобы уничтожить диалоговое окно, созданное функцией Create.
Пример
CMyDialog* pDialog;
void CMyWnd::OnSomeAction()
{
//pDialog инициализированный к NULL в конструкторе класса CMyWnd
pDialog = new CMyDialog();
//Проверьте получили ли новый допустимый указатель на объект диалога
if(pDialog != NULL)
{
BOOL ret = pDialog->Create(IDD_MYDIALOG,this);
if(!ret) //Ошибка создания
AfxMessageBox("Error creating Dialog");
pDialog->ShowWindow(SW_SHOW);
}
else
AfxMessageBox("Error Creating Dialog Object");
}