Pierwsze starcie. Tworzenie okien.

Writing /home/grochu/public_html/wiki/data/cache/0/0193425cdc2172f4af69d207a48c7773.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /home/grochu/public_html/wiki/data/cache/0/0193425cdc2172f4af69d207a48c7773.metadata failed
Writing /home/grochu/public_html/wiki/data/cache/1/1b60f85ee828133b9c9abc9160cda529.i failed
Writing /home/grochu/public_html/wiki/data/cache/1/1b60f85ee828133b9c9abc9160cda529.metadata failed

Pierwsze starcie. Tworzenie okien.

Co trzeba znać ?

  • powtórka obowiązkowa C/C++
  • wskaźniki, struktury, typedef, makra, wskaźniki do funkcji, łańcuchy znakowe, alokacja pamięci, itd…

Hello World

  • 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 komiunukat „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);
}
while(GetMessage(&Msg, NULL, 0, 0) > 0)
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
  • Obłóż komunikaty WM_CLOSE i WM_DESTROY
  • Przed zamknięciem wyświetl MessageBox z zapytaniem czy napewno zamknąć?