13. protected:

14. void.Paint( TDC&, BOOL, TRectS) ;

15. private:

16. TBitmap *mooBitmap;

17. TPoint center;

18. };

19. // Конструктор окна битового образа

20. TBitmapWindow::TBitmapWindow( const char *titie)

21. : TFrameWindow(0, title, 0), TWindow( 0, title;. {

22. mooBitmap = new TBitmap(*GetModule(), BITMAP_1);

23. • // Подстройка размера изображения под размер окна

24. //с учетом размеров рамки

25. Attr.W = mooBitmap->Width() +

26. 2*GetSystemMetrics(SM_CXBORDER) ;

27. Attr.H = mooBitmap->Height() +

28. GetSystemMetrics(SM_CYBORDER.) +

29. GetSystemMetrics(SM_CYCAPTION) +

30. 1 .,GetSystemMetrics(SM_CYMENU);

31. Attr.Style &= ~(WS_THICKFRAME ¦ WS_MAXIMIZEBOX) ;

32. center.x = mooBitmap->Width() / 2;

33. center.у = mooBitmap->Height() / 2; }

34. TBitmapWindow::-TBitmapWindow(!

35. - { delete mooBitmap; }

36. void TBitmapWindow::Paint( TDC& dc, BOOL, TRectS) {

37. TMemoryDC memDC(dc) ;

38. memDC.SelectObject(*mooBitmap) ;

39. dc.BitBltf 0,0, mooBitmap->Width(),

40. mooBitmap->Height(), memDC, О, О, SRCCOPY); }

41. class TApp : public TApplication {

42. public:

4 3. TApp() : TApplication(){};

44. void InitMainWindowI)[

45. Mai.nWindow = new TBitmapWindow (

46. "Битовые образы в Borland C++ 5"); }

47. };

48. int OwlMain( int,'char* []) ( 4 9. return TApp().Run(); }

Многое из этой программы уже обсуждалось в предыдущих разделах данной главы. В них уже встречался код из строк 1—8 и 41—49. Существенно новый материал находится в строках с 9 по 40.

f

Совет

!¦ Если вам неясны некоторые моменты этой программы, вернитесь к предыдущим разделам. Эта программа может быть использована в качестве кар-! каса для создания ваших собственных приложений, поэтому очень полезно

разобраться во всех деталях приводимого кода.