Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie w Środowisku Windows Mysz i klawiatura.

Podobne prezentacje


Prezentacja na temat: "Programowanie w Środowisku Windows Mysz i klawiatura."— Zapis prezentacji:

1 Programowanie w Środowisku Windows Mysz i klawiatura

2 Programowanie w Środowisku Windows Plan wykładu Focus okna Klawiatura Przyciśnięcie klawisza Generowanie znaków Obsługa myszy

3 Focus okna Adresat komunikatu Pole MSG::hwnd Okno aktywne ang. focus – adresat komunikatów Okna potomne – mogą mieć focus, ale aktywny jest rodzic Programowanie w Środowisku Windows

4 Focus okna Zmiana focusa Komunikaty WM_SETFOCUS WM_KILLFOCUS Przydzielanie focusa SetFocus() / GetFocus() W obrębie jednego wątku Programowanie w Środowisku Windows

5 Focus okna Aktywacja okna SetActiveWindow() / GetActiveWindow() WM_ACTIVATE Przydzielanie w obrębie jednego wątku Programowanie w Środowisku Windows

6 Focus okna Systemowa kolejka komunikatów Rozsyłanie komunikatów Po jednym Adresat – okno posiadające focus Możliwa zmiana focusa Programowanie w Środowisku Windows

7 Klawiatura Komunikaty Naciśnięcie klawisza Generacja znaku Obsługa zależnie od zastosowania Programowanie w Środowisku Windows

8 Klawiatura Naciśnięcie klawisza WM_KEYDOWN / WM_SYSKEYDOWN WM_KEYUP / WM_SYSKEYUP Przytrzymanie klawisza – seria WM_KEYDOWN GetMessageTime() Klawisze systemowe Alt + function key, Tab, Esc Blokowanie Programowanie w Środowisku Windows

9 Klawiatura Parametry komunikatów KEY wParam – kod VK_*** VK_MENU = Alt lParam Repeat Count Context Code Programowanie w Środowisku Windows

10 Klawiatura Sprawdzenie stanu klawisza GetKeyState(VK_***) Klawisze dwustanowe (CapsLock) Uwaga: stan klawiatury w momencie otrzymania komunikatu Sprawdzanie asynchroniczne GetAsyncKeyState() Programowanie w Środowisku Windows

11 Klawiatura Stosowanie KEYDOWN Strzałki, F1-F12 Insert, Delete, Shift, Ctrl, Alt Nie używać do znaków Wiązanie komunikatów Zapewnienie identycznej obsługi SendMessage() Programowanie w Środowisku Windows

12 Klawiatura Komunikaty znaków WM_CHAR / WM_SYSCHAR WM_DEADCHAR / WM_SYSDEADCHAR lParam – tak samo jak przy KEY wParam – kod ANSI / UNICODE (TCHAR) RegisterClassA() i RegisterClassW() Programowanie w Środowisku Windows

13 Klawiatura Generacja komunikatu WM_CHAR TranslateMessage() Kolejność komunikatów: DOWN, CHAR, UP Obsługa znaków posiadających kod ASCII Programowanie w Środowisku Windows

14 Klawiatura Karetka – opis i zasady Okno z focusem Tylko jedno okno w systemie Tworzenie i niszczenie Komunikaty SETFOCUS i KILLFOCUS Wyświetlanie i ukrywanie Karetka po utworzeniu jest niewidoczna Akcje wielokrotne są kumulowane Obsługa WM_PAINT Programowanie w Środowisku Windows

15 Klawiatura Funkcje obsługi karetki CreateCaret() Get / SetCaretPos() ShowCaret() HideCaret() DestroyCaret() Szybkość migania Get / SetCaretBlinkTime() Programowanie w Środowisku Windows

16 Klawiatura Klawisze specjalne Klawisze myszy Klawisze zasilania WM_APPCOMMAND wParam – uchwyt okna lParam – identyfikator DefWindowProc() – przekazuje rodzicowi lub do powłoki Programowanie w Środowisku Windows

17 Mysz – komunikaty Położenie kursora – lParam GET_X_LPARAM, GET_Y_LPARAM Stan przycisków – wParam MK_LBUTTON, MK_SHIFT, MK_CONTROL GetKeyState() / GetAsyncKeyState() Akcje: Ruch Przyciski Kółko Programowanie w Środowisku Windows

18 Mysz – kliknięcia Kliknięcie w obszar roboczy WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDBLCLK – zależnie od CS_DBLCLKS Kliknięcie poza obszarem roboczym WM_NC*** Współrzędne ekranu (lParam) Identyfikator fragmentu okna – HT*** (wParam) Programowanie w Środowisku Windows

19 Mysz – ruch WM_MOUSEMOVE Okno nie musi być aktywne Częstotliwość – przykład... WM_MOUSEWHEEL wParam GET_KEYSTATE_WPARAM GET_WHEEL_DELTA_WPARAM lParam – współrzędne Przykład Programowanie w Środowisku Windows

20 Mysz – obsługa Przechwytywanie komunikatów myszy SetCapture(), ReleaseCapture() WM_CAPTURECHANGED Dwuklik Styl okna CS_DBLCLKS LBUTTONDBLCLK zamiast LBUTTONDOWN Zgodność akcji Programowanie w Środowisku Windows

21 Mysz – testowanie położenia WM_NCHITTEST Poprzedza komunikaty myszy DefWindowProc() – identyfikator fragmentu okna HTCLIENT, HTNOWHERE, HTERROR Komunikaty obszaru roboczego dla HTCLIENT Wysyłany, gdy okno nie przechwytuje komunikatów Programowanie w Środowisku Windows

22 Mysz – śledzenie TrackMouseEvent() WM_MOUSEHOVER WM_MOUSELEAVE Struktura TRACKMOUSEEVENT Czas domyślny – 400ms Programowanie w Środowisku Windows

23 Mysz – sterowanie ShowCursor() Zliczanie wywołań – kumulacja Set / GetCursorPos() Emulacja myszy za pomocą klawiatury Programowanie w Środowisku Windows

24 Podsumowanie Komunikaty urządzeń zewnętrznych Przekazywane po jednym do okna z focusem Karetka – zasób systemowy Sprzężenie komunikatów klawiatury i myszy Programowanie w Środowisku Windows

25 Dziękuję za uwagę!


Pobierz ppt "Programowanie w Środowisku Windows Mysz i klawiatura."

Podobne prezentacje


Reklamy Google