Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 9374 razy

C++ WinAPI umożliwia tworzenie aplikacji okienkowych, niestety brak mu jakiegokolwiek interfejsu graficznego, dzięki któremu można by było wstawiać i tworzyć nowe elementy okna głównego (czego nie lubią programiści). Programy działają wykorzystując pętlę komunikatów, która ma zadanie przechwytywać przychodzące komunikaty i jeżeli te odwołują się do programu wtedy zostaje wywołana funkcja procedury okna. Funkcja ta przyjmuje cztery parametry: uchwyt okna HWND, identyfikator komunikatu UINT oraz dwa parametry dodatkowe lParam i wParam będące typu unsigned int. Komunikaty są obsługiwane w instrukcji switch case, a najczęściej z nich wykorzystywane to:

  • WM_CREATE - komunikat wywoływany jako pierwszy po utworzeniu nowego okna programu;
  • WM_SIZE - komunikat wywoływany przy zmianie rozmiaru okna;
  • WM_PAINT - komunikat wywoływany przy odświeżaniu okna;
  • WM_DESTROY - komunikat wywoływany przy niszczeniu okna;
  • WM_MOUSEMOVE - komunikat wywoływany przy każdym ruchu myszy nad powierzchnią okna;
  • WM_LBUTTONDOWN - komunikat wywoływany przy wciśnięciu lewego przycisku myszy;
  • WM_RBUTTONDOWN - komunikat wywoływany przy wciśnięciu prawego przycisku myszy;
  • WM_LBUTTONUP - komunikat wywoływany przy zwolnieniu lewego przycisku myszy;
  • WM_RBUTTONUP - komunikat wywoływany przy zwolnieniu prawego przycisku myszy;
  • WM_KEYDOWN - komunikat wywoływany przy wciśnięciu dowolnego klawisza klawiatury;
  • WM_COMMAND - komunikat wywoływany przy kliknięciu jakiejś pozycji w menu okna, wywołaniu akceleratora lub przetwarzaniu komunikatu pochodzącego od okna potomnego (kontrolki).

Oczywiście komunikatów jest znacznie więcej niż te podane powyżej, jednakże do ogarnięcia podstaw C++ WinAPI powinny one wystarczyć.

W ramach tego działu postaram się przybliżyć następujące zagadnienia:

  • zasada rejestracji okna, tworzenie funkcji procesu okna, tworzenie okna oraz przetwarzanie komunikatów w pętli komunikatów;
  • dodawanie zasobów takich jak menu oraz ikona programu;
  • tworzenie okien potomnych - omówienie podstawowych typów kontrolek;
  • rysowanie po oknie - podstawowe funkcje związane z rysowaniem w WinAPI;
  • buforowanie przy rysowaniu - czyli jak zrobić, żeby okno nie mrugało przy odrysowywaniu;
  • zapewne wiele, wiele więcej...
Literatura:
literatura
  1. Pasja C++, tom I, J. Grebosz
  2. Pasja C++, tom II, J. Grebosz
  3. Programowanie Windows, Charls Petzold
Layout wykonany przez autora strony, wszelkie prawa zastrzeżone. Jakiekolwiek użycie części lub całości grafik znajdujących się na tej stronie bez pisemnej zgody jej autora surowo zabronione.