#include //////////////////////////////// // Demo 10 teht 3-4 // tekijä Jussi Passi ///////////////////// int TaytaMonellaBittikartalla(TWindow *Wnd, HDC dc, TBitmap bitmap) { int yKuva, xKuva, xAla, yAla; TRect rc; TDC tdc(dc); // HDC => luokka TMemoryDC memDC(tdc); memDC.SelectObject(bitmap); Wnd->GetClientRect(rc); xKuva = bitmap.Width(); // kuvan leveys yKuva = bitmap.Height(); // kuvan korkeus xAla = rc.Width(); // piirtoalueen leveys yAla = rc.Height(); // piirtoalueen korkeus for (int y=0; y < yAla; y+=yKuva) // jatketaan kunnes ei mahdu y-suunnassa for (int x=0; x < xAla; x+=xKuva) // jatketaan kunnes ei mahdu x-suunnassa tdc.BitBlt(x, y, xKuva, yKuva, memDC, 0, 0); return 0; } class TMainWindow : public TFrameWindow { public: TMainWindow(TWindow *Parent, LPCSTR ATitle) : TFrameWindow(Parent, ATitle) { MoveWindow(50,50,300,300); // Ehkä Attr.X = 50 jne... OWL 2.5 } bool EvEraseBkgnd(HDC dc); DECLARE_RESPONSE_TABLE(TMainWindow); }; bool TMainWindow::EvEraseBkgnd(HDC dc) { TBitmap Taustis(*this->GetModule(), "TAUSTA"); TaytaMonellaBittikartalla(this, dc, Taustis); return true; } DEFINE_RESPONSE_TABLE1(TMainWindow, TFrameWindow) EV_WM_ERASEBKGND, END_RESPONSE_TABLE; class TTaustisApp : public TApplication { public: TTaustisApp( const char far *name = 0) :TApplication(name) {}; void InitMainWindow() { MainWindow = new TMainWindow(NULL, Name); } }; int OwlMain(int, char far * []) { return TTaustisApp("Monitausta").Run(); }