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