Edytuj stronę Odnośniki Fold/unfold all ODT export Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić. ====== 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ą [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms633559%28v=vs.85%29.aspx|WinMain]] <code C> int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) </code> * Dodaj [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms645505%28v=vs.85%29.aspx|MessageBox]] z wyświetlający komiunukat "Hello World" z ikonką informacyjną i przyciskiem OK. ===== Pierwsze okno ===== * Utwórz i zarejestruj klasę okien [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms633577%28v=vs.85%29.aspx|WNDCLASSEX]] * Domyślna procedura okna <code C> LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { return DefWindowProc(hwnd, msg, wParam, lParam); } </code> * Utwórz okno zgodne z zarejestrowaną klasą * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms632680%28v=vs.85%29.aspx|CreateWindowEx]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx|ShowWindow]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/dd145167%28v=vs.85%29.aspx|UpdateWindow]] * Pętla główna komunikatów <code C> while(GetMessage(&Msg, NULL, 0, 0) > 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); } </code> * Obłóż komunikaty ''WM_CLOSE'' i ''WM_DESTROY'' * Niszczenie okna [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms632682%28v=vs.85%29.aspx|DestroyWindow]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms644945%28v=vs.85%29.aspx|PostQuitMessage]] * Przed zamknięciem wyświetl MessageBox z zapytaniem czy napewno zamknąć?