Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie w Środowisku Windows

Podobne prezentacje


Prezentacja na temat: "Programowanie w Środowisku Windows"— Zapis prezentacji:

1 Programowanie w Środowisku Windows
Architektura API Win32 Programowanie w Środowisku Windows

2 Programowanie w Środowisku Windows
Plan wykładu Aplikacja okienkowa Okna Podstawowe zagadnienia Tworzenie okien Komunikaty Funkcja okienkowa Obsługa okien Programowanie w Środowisku Windows

3 Programowanie w Środowisku Windows
Aplikacja okienkowa Aplikacja konsolowa Interakcja z użytkownikiem – linia poleceń Funkcja main() Wykonanie programu Przykład... Programowanie w Środowisku Windows

4 Programowanie w Środowisku Windows
Aplikacja okienkowa Interakcja z użytkownikiem Funkcja WinMain() Argumenty Windows.h MessageBox Przykład... Projekt EmptyEx – dodac obsluge MsgBoxa int nRes = MessageBox (NULL, TEXT ("Papo Smerfie, daleko jeszcze???"), TEXT ("Pytanie o sens"), MB_ICONQUESTION | MB_YESNO) ; if(nRes == IDYES) MessageBox (NULL, TEXT ("Oj daleko"), TEXT ("Odpowiedz"), MB_ICONWARNING) ; else MessageBox (NULL, TEXT ("Juz calkiem blisko"), TEXT ("Odpowiedz"), MB_ICONINFORMATION) ; return 0; Programowanie w Środowisku Windows

5 Programowanie w Środowisku Windows
Aplikacja okienkowa Tworzenie projektu Win32 Przykład... Prostszy przykład - WindowApp Stworzenie nowego projektu Win32 Programowanie w Środowisku Windows

6 Aplikacja okienkowa - programowanie
Notacja węgierska Typy CHAR, WCHAR, TCHAR Handle DWORD, INT, FLOAT, BYTE WPARAM, LPARAM Programowanie w Środowisku Windows

7 Programowanie w Środowisku Windows
Okna Elementy okna Title bar Client area Menu Tool bar Status bar Odpalic projekt WindowApp Programowanie w Środowisku Windows

8 Programowanie w Środowisku Windows
Okna Klasa okna i jej rejestracja (RegisterClassEx() ) Tworzenie okna (CreateWindowEx() ) Wyświetlenie i schowanie okna (ShowWindow() ) Przykładowa aplikacja – analiza Ogolne zasady zarzadzania oknami Programowanie w Środowisku Windows

9 Programowanie w Środowisku Windows
Okna - rejestracja Struktura WNDCLASSEX Funkcja obsługi komunikatów Ikony, kursor, menu Identyfikator klasy Klasy systemowe RegisterClassEx() Funkcja GetLastError() Na przykladzie WindowApp: - Zmiana parametrow WNDCLASSEX Programowanie w Środowisku Windows

10 Programowanie w Środowisku Windows
Okna - tworzenie CreateWindowEx() Różnice względem CreateWindow() – dodatkowe style Identyfikator klasy Położenie Styl okna – WS_*** Uchwyty Uchwyt – 32b identyfikator Programowanie w Środowisku Windows

11 Programowanie w Środowisku Windows
Okna - style WS_CAPTION WS_HSCROLL WS_MAXIMIZEBOX / WS_MINIMIZEBOX WS_SYSMENU WS_TABSTOP Pokazac przyklady (WindowApp) Programowanie w Środowisku Windows

12 Programowanie w Środowisku Windows
Okna - typy WS_OVERLAPPED „zwykłe okno” WS_OVERLAPPEDWINDOW WS_POPUP title bar nie jest wymagany WS_CHILD obszar roboczy rodzica Programowanie w Środowisku Windows

13 Programowanie w Środowisku Windows
Okna - hierarchia Zasady Z-order – lista okien Top-most i top-level Sterowanie WS_EX_TOPMOST BringWindowToTop() SetWindowPos() – wymuszenie hierarchii Programowanie w Środowisku Windows

14 Programowanie w Środowisku Windows
Komunikaty Akcje użytkownika Np. skalowanie okna Format – typ MSG Identyfikator WM_*** Parametry – WPARAM, LPARAM Adresat Źródła komunikatów Komunikaty własne – WM_USER Programowanie w Środowisku Windows

15 Programowanie w Środowisku Windows
Komunikaty - kolejka Kolejka komunikatów Priorytety Dodawanie do kolejki PostMessage() SendMessage() Pobieranie z kolejki GetMessage() i PeekMessage() Komunikat WM_QUIT i WM_PAINT Przykład... WM_PAINT – Get/PeekMessage nie usuwa z kolejki WM_QUIT – f. Zwraca 0 Programowanie w Środowisku Windows

16 Programowanie w Środowisku Windows
Komunikaty - obsługa Pętla obsługi komunikatów TranslateMessage() i DispatchMessage() TranslateAccelerator() – WM_COMMAND Przykład... Funkcja obsługi komunikatów Wywoływana przez system WM_COMMAND nie jest kolejkowane Funkcja okienkowa – moze byc wywolana jako resultat Dispatch Programowanie w Środowisku Windows

17 Programowanie w Środowisku Windows
Komunikaty - obsługa Funkcja obsługi komunikatów Zwracana wartość DefWindowProc() Uwagi Deklaracje przed switch Trwałość zmiennych Funkcje Namespace Zadeklarowac namespace w WindowApp. -> Koniec pierwszego wykladu Programowanie w Środowisku Windows

18 Programowanie w Środowisku Windows
Obsługa okien Komunikaty dotyczące obsługi okien Tworzenie i niszczenie Rysowanie Skalowanie Funkcje pomocne w sterowaniu Programowanie w Środowisku Windows

19 Programowanie w Środowisku Windows
Obsługa - tworzenie WM_GETMINMAXINFO Ustalenie rozmiaru okna lParam – wskaźnik na MINMAXINFO Przykład... WM_NCCREATE WM_NCCALCSIZE WM_CREATE (CREATESTRUCT) WM_SHOWWINDOW Dodac obsluge WM_GETMINMAX, zmienic wartosci MaxSize, TrackSize. WndProc zwraca 0. Programowanie w Środowisku Windows

20 Obsługa - wyświetlenie
WM_SHOWWINDOW WM_WINDOWPOSCHANGING WM_ACTIVATEAPP WM_NCACTIVATE WM_GETTEXT WM_ACTIVATE WM_SETFOCUS WM_NCPAINT WM_WINDOWPOSCHANGED WM_SIZE WM_MOVE Komunikaty związane z ShowWindow Programowanie w Środowisku Windows

21 Programowanie w Środowisku Windows
Obsługa - rysowanie Rysowanie na żądanie systemu Komunikat WM_PAINT Graphics Device Interface - GDI UpdateWindow Uruchomienie aplikacji bez BeginPaint – 100% na TaskManager Programowanie w Środowisku Windows

22 Programowanie w Środowisku Windows
Obsługa - niszczenie WM_DESTROY Akcja użytkownika PostQuitMessage() WM_QUIT Przykład... Debugowanie konca aplikacji Programowanie w Środowisku Windows

23 Programowanie w Środowisku Windows
Obsługa – zmiana stylu GetWindowLong() GWL_STYLE GWL_EXSTYLE GWL_WNDPROC SetWindowLong() Programowanie w Środowisku Windows

24 Programowanie w Środowisku Windows
Obsługa - funkcje EnableWindow() Blokowanie komunikatów Przydatne przy tworzeniu kontrolek IsWindow() GetWindowRect() i GetClientRect() ScreenToClient() / ClientToScreen() Programowanie w Środowisku Windows

25 Programowanie w Środowisku Windows
Obsługa - funkcje MoveWindow() WM_WINDOWPOSCHANGED WM_MOVE WM_SIZE Get / SetWindowPlacement() Ustawienie trybu wyświetlenia okna Jezeli WM_WINDOWPOSCHANGED jest obslugiwane w DefWindowProc, to wysylane sa MOVE i SIZE. Programowanie w Środowisku Windows

26 Programowanie w Środowisku Windows
Podsumowanie Odmienna filozofia funkcjonowania aplikacji Sterowanie poprzez komunikaty Okno – forma komunikacji z użytkownikiem Programowanie w Środowisku Windows

27 Programowanie w Środowisku Windows
Dziękuję za uwagę! Programowanie w Środowisku Windows


Pobierz ppt "Programowanie w Środowisku Windows"

Podobne prezentacje


Reklamy Google