Глава 26. Многодокументный интерфейс_________________________767

// Увеличение счетчика дочерних окон //и генерация заголовка дочернего MDI окна wsprintf(title, "Resource %d", ++ChildCount);

// Создание нового дочернего окна

// с пустым TEditFile в качестве клиента

TEditFile* childClient = new TEditFile(0, 0, 0) ;

TMDIChild* child = new TMDIChild(*this, title, childClient);

// Связывание значка "документ" с дочерним окном child->SetIcon3m(GetApplication(), IDI_DOC) ;

// Свертывание нового дочернего окна в случае,

// если текущее окно развернуто

TMDIChild *curChild = GetActiveMDIChildt);

if (curChild && (curChild->GetWindowLong(GWL_STYLE)

& WS_MAXIMIZE)) child->Attr.Style ¦= WS_MAXIMIZE;

// Создание окна child-create (); *

// Установка заголовка окна child->SetCaption(title);

// Назначение клиентской области дочернего окна необходимых // фильтров имен файлов

ResTextApp *theApp = TYPESAFE_DOWNCAST(GetApplication(), ResTextApp) ;

childClient->FileData = theApp->FileData;

}

//////////////////////////////////////////////////////////////////

// ResMDIClient::OpenFile()

//

// открытие файла в новом дочернем окне

void ResMDIClient::OpenFile(const char *fileName)

{

ResTextApp *theApp = TYPESAFE_DOWNCAST(GetApplication(), ResTextApp) ;

if (fileName)

strcpy(theApp->FileData.FileName, fileName);

// Создание нового дочернего окна MDI с клиентом TEditFile TEditFile *childClient = new TEditFile(О, О, О, О, О, О, О, theApp->FileData.FileName) ;

TMDIChild* child = new TMDIChild(*this, "", childClient); ,

// Связывание с дочерним окном значка "документ" child->SetIcon3m(GetApplication(), IDI_DOC) ;

// Развертывание нового дочернего окна, если текущее окно развернуто TMDIChild *curChild = GetActiveMDIChildO;