C++ WinApi

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

Ten dział został dopiero co rozpoczęty, w związku z czym może zawierać mało istotnych informacji

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 komunikaty 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:
  1. Pasja C++, tom I, J. Grebosz
  2. Pasja C++, tom II, J. Grebosz
  3. Programowanie Windows, Charls Petzold

Komentarze