Шаг 31 - Вызов диалогового окна из программы

Класс диалогового окна может быть как статическим, так и динамическим. Давайте посмотрим. Создадим приложение SDI и сделаем два диалога.

31_1.gif (1315 b)

Свяжем их с классами. И опишем один как статический, второй как динамический.

#endif // _MSC_VER > 1000

#include "Dialog1.h"
#include "Dialog2.h"

class CTestDialogSdiView : public CView
{
protected: // create from serialization only
	CTestDialogSdiView();
	DECLARE_DYNCREATE(CTestDialogSdiView)
	CDialog1 cd1;
	CDialog2* cd2;
// Attributes
public:
........
};

А теперь два пункта меню, которые будет создавать соответствующие диалоги:

31_2.gif (2120 b)

Привяжем к ним события. И посмотрим в чем разница.

/////////////////////////////////////////
// CTestDialogSdiView message handlers

void CTestDialogSdiView::OnDialogStatic() 
{
	cd1.DoModal(); 
}

void CTestDialogSdiView::OnDialogDinamic() 
{
	// TODO: Add your command handler code here
	cd2 = new CDialog2();
	cd2->DoModal();
	delete cd2;
}

Практически ни в чем. Но кстати это только пока. Есть разница в хранении данных. В статическом диалоге данные будут сохранены, а в динамическом данные будут удалены вместе с классом диалога.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 27.06.2002