Глава 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;