Глава 28. Система ClassExpert ________________________________823

h08231.jpg

void TApxPreviewWin::SetupWindow() {

TDecoratedFrame::SetupWindow() ;

TPrintDialpg::TDataS data = Printer->GetSetup();

Pagel = new TPreviewPage(Client, *Printout, *PrnDC, *PrintExtent, 1) ;

Pagel->SetPageNumber(l) ;

data.MaxPage = 1;

Page2 = 0;

TLayoutMet rics met ri cs 1;

metricsl.X.Set (ImLeft, ImRightOf, ImParent, ImLeft, 15);

metricsl.Y.Set(ImTop, ImBelow, ImParent, ImTop, 15);

// Определяем главную ось просматриваемой страницы

// Размер по второй оси устанавливаем в соответствии с отношением

// сторон страницы

TRect г = Client->GetClientRect() ;

long ratio;

if (PrintExtent->cx > PrintExtent->cy)

ratio = ((long)PrintExtent->cy * 100) / PrintExtent->cx;

else

ratio = ((long)PrintExtent->cx * 100) / PrintExtent->cy;

bool xMajor = ( (r.Width ()*rfatio) / 100) > r.Height ();

if (xMajor) (

metricsl.Height.Set(ImBottom, ImAbove, ImParent, ImBottom, 15);

metricsl.Width.PercentOf(Pagel,

(int)((long)PrintExtent->cx * 95 / PrintExtent->cy), ImHeight) ;

} else (

metricsl.Height.PercentOf(Pagel,

(int)((long)PrintExtent->cy * 95 / PrintExtent->cx), ImWidth) ;

metricsl.Width.Set(ImRight, ImLeftOf, ImParent, ImRight, 15);

}

Pagel->Create() ;

Client->SetChildLayoutMetrics(*Pagel, metricsl) ;

Client->Layout() ;

}