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"); }