WinAPI - pierwsze starcie
Co trzeba znać ?
- powtórka obowiązkowa C/C++, C#
- wskaźniki, struktury, typedef, makra, wskaźniki do funkcji, łańcuchy znakowe, alokacja pamięci, itd…
Hello World - szablon projektu VS
- Utwórz projekt Win32 wykorzystując szablon projektu dostępny w Visual Studio i zapoznaj się z zawartością tego szablonu (funkcja WinMain, typy zmiennych i konwencja nazewnicza WInAPI, rejetracja okna, tworzenie okna głównego, pętla komunikatów, zasoby, itp.).
- Dodaj MessageBox z wyświetlający komunikat „Hello World” z ikonką informacyjną i przyciskiem OK.
- Przed zamknięciem aplikacji (okna głownego) wyświetl MessageBox z zapytaniem czy na pewno zamknąć?
- Dodaj do okna przynajmniej jedną kontrolkę, np. przycisk (BUTTON), kontrolkę edycyjną (EDIT), pole statyczne (STATIC)
Przydatne referencje:
Hello World 2 - pusty projekt
- Utwórz pusty projekt Win32 i dodaj plik źródłowy z funkcją główną WinMain
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
- Dodaj MessageBox z wyświetlający komunikat „Hello World” z ikonką informacyjną i przyciskiem OK.
Pierwsze okno
- Utwórz i zarejestruj klasę okien WNDCLASSEX
- Domyślna procedura okna
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { return DefWindowProc(hwnd, msg, wParam, lParam); }
- Utwórz okno zgodne z zarejestrowaną klasą
- Pętla główna komunikatów
while(GetMessage(&Msg, NULL, 0, 0) > 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); }
- Obsłuż komunikaty
WM_CLOSE
iWM_DESTROY
- Niszczenie okna DestroyWindow
- Przed zamknięciem wyświetl MessageBox z zapytaniem czy na pewno zamknąć?