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.

Funkcja TextOut() pracuje w trybie graficznym, więc (podobnie<br />

jak inne funkcje graficzne Windows API) otrzymuje jako argument<br />

tzw. "kontekst urządzenia" - hDC.<br />

Zamykanie okna:<br />

case WM_CLOSE:<br />

DestroyWindow(hWnd);<br />

if (hWnd == hWndMain)<br />

PostQuitMessage(0);<br />

Jeśli zamknięte zostało główne okno aplikacji, funkcja<br />

PostQuitMessage() wysyła do Windows komunikat, że aplikacja<br />

zakończyła działanie i okno aplikacji zostało usunięte. W tym<br />

stadium stosuje się funkcje PostQuitMessage() i<br />

PostAppMessage(). Pozostale przypadki są obsługiwane przez<br />

wariant domyślny - default. Przekazanie komunikatu do obsługi<br />

przez Windows.<br />

default:<br />

return (DefWindowProc(hWnd, Message, wParam, lParam));<br />

Funkcja rejestrująca wszystkie klasy wszystkich okien związanych<br />

z bieżącą aplikacja (nazwiemy ją roboczo FRegisterClasses()).<br />

Jesli operacja sie powiodła - funkcja zwraca kod błędu.<br />

int FRegisterClasses(void)<br />

{<br />

WNDCLASS wndclass; /* Struktura do definiowania klas okien. */<br />

memset(&wndclass, 0x00, sizeof(WNDCLASS));<br />

Ustawienie parametrów okna w strukturze:<br />

wndclass.style = CS_HRDRAW | CS_VRDRAW;<br />

wndclass.lpfnWindowProc = WindowProc;<br />

Dodatkowa pamięć dla klasy Window i obiektów klasy Window.<br />

Dołączanie innych zasobów odbywa się przy pomocy funkcji:<br />

LoadBitmap() - załaduj mapę bitową<br />

LoadIcon() - załaduj ikonkę<br />

LoadCurcor(), LoadMenu(), itp. ...<br />

wndclass.cbClsExtra = 0;<br />

wndclass.cbWndExtra = 0;<br />

wndclass.hInstance = hInst;<br />

wndclass.hIcon = LoadIcon(NULL, ID_ICON);<br />

wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);<br />

Utworzenie pędzla (brush) dla tła:<br />

wndclass.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);<br />

wndclass.lpszMenuName = szAppName;<br />

wndclass.lpszClassName = szAppName;<br />

- 390-

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

Saved successfully!

Ooh no, something went wrong!