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.

{<br />

MessageBox(0, "Klops", "Koniec", MB_OK);<br />

return (FALSE);<br />

}<br />

Wyświetlenie głównego okna na ekranie:<br />

ShowWindow(hWndMain, nCmdShow);<br />

Pętla komunikatów wykrywająca komunikat WM_QUIT:<br />

while(GetMessage(&msg, 0, 0, 0))<br />

{<br />

TranslateMessage(&msg);<br />

DispatchMessage(&msg);<br />

}<br />

Główna procedura obsługi okna WindowProc().<br />

Instrukcja switch przełącza do odpowiedniego wariantu działania<br />

- obsługi odpowiedniego komunikatu. Muszą tu znajdować sie<br />

procedury obsługi wszystkich interesujacych nas działań<br />

uzytkownika i ogólnych komunikatow Windows (np. WM_CLOSE). Jeśli<br />

wystąpi taki komunikat, którego obsługa nie została<br />

przewidziana, obsługa jest przekazywana, do funkcji okienkowej<br />

DefWindowProc() - obsługę przejmują Windows.<br />

Komunikaty inicjowane przez użytkownika są rozpatrywane<br />

zasadniczo jako WM_COMMAND. Rozkaz wybrany z menu lub<br />

odpowiadająca mu kombinacja klawiszy jest przekazywana przy<br />

pomocy pierwszego parametru komunikatu - wParam. Kod<br />

odpowiadający rozkazowi z menu nazywa sie "control menu ID", a<br />

identyfikator kombinacji klawiszy - "accelerator ID". Procedura<br />

obsługi komunikatów powinna zawierać<br />

case (WM_COMMAND): ..... break;<br />

Wewnątrz przy pomocy instrukcji switch{...} należałoby<br />

rozpatrywać kolejne warianty, wykorzystując identyfikator<br />

wybranego z menu rozkazu - ID. Obsługa komunikatow świadczących<br />

o wyborze przez użytkownika rozkazu z menu stanowi zwykle główną<br />

roboczą cześć programu.<br />

LONG FAR PASCAL WindowProc(HWND hWnd, WORD Message, WORD wParam,<br />

LONG lParam)<br />

{<br />

HMENU hMenu=0; /* Identyfikator menu */<br />

HBITMAP hBitmap=0; /* Identyfikator mapy bitowej */<br />

HDC hDC; /* Identyfikator kontekstowy */<br />

PAINSTRUCT ps; /* Struktura rysunku */<br />

int nRc=0; /* Zwrot kodu przez funkcje */<br />

switch (message)<br />

- 388-

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

Saved successfully!

Ooh no, something went wrong!