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:

Control library (MSDN)

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ą

CreateWindowEx

ShowWindow

UpdateWindow

Pętla główna komunikatów

while(GetMessage(&Msg, NULL, 0, 0) > 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); }

Obsłuż komunikaty WM_CLOSE i WM_DESTROY

Niszczenie okna DestroyWindow

PostQuitMessage

Przed zamknięciem wyświetl MessageBox z zapytaniem czy na pewno zamknąć?