16.05.2015 Views

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

.... break;<br />

case WM_SIZE:<br />

.... break;<br />

case WM_PAINT: /* Obsługa rysowania okna */<br />

memset(&ps, 0x00, sizeof(PAINTSTRUCT);<br />

....<br />

break; //Koniec obsługi WM_PAINT<br />

case WM_CLOSE:<br />

.... break;<br />

default: .....<br />

}<br />

}<br />

Następnie pola struktury rysunku zostają wypełnione poprzez<br />

okienkową funkcją BeginPaint() - RozpocznijRysowanie. Zwróć<br />

uwagę, że do poprawnego działania funkcji potrzebne są<br />

informacje o tym, które okno trzeba odświeżyć (Windows powinny<br />

wiedzieć wobec którego okna żądamy informacji o "zepsutym"<br />

prostokącie) i adres naszej struktury rysunku. Aby przekazać te<br />

informacje postępujemy tak:<br />

case WM_PAINT:<br />

memset(&ps, 0x00, sizeof(PAINTSTRUCT));<br />

hDC = BeginPaint(hWnd, &ps);<br />

....<br />

Teraz funkcja BeginPaint() może wypełnić naszą strukturę rysunku<br />

ps danymi. Pola struktury typu PAINTSTRUCT wyglądają<br />

następująco:<br />

typedef struct tagPAINTSTRUCT<br />

{<br />

HDC hdc;<br />

BOOL fErase;<br />

RECT rcPaint;<br />

BOOL fRestore;<br />

BYTE rgbReserved[16];<br />

} PAINTSTRUCT;<br />

Przy pomocy pola typu RECT (ang. rectangle - prostokąt) Windows<br />

przekazują do programu współrzędne wymiary (ang. dimensions)<br />

"zepsutego" na ekranie prostokąta. Typ RECT oznacza następującą<br />

strukturę:<br />

typedef struct tagRECT<br />

{<br />

int left; //współrzędna lewa - x<br />

int top; //współrzędna górna - y<br />

int right; //współrzędna prawa - x<br />

int bottom; //współrzędna dolna - y<br />

} RECT;<br />

- 385-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!