Programowanie w Środowisku Windows

Slides:



Advertisements
Podobne prezentacje
Programowanie Windows
Advertisements

Jarosław Kuchta Komunikaty w Windows.
Programowanie obiektowe
Edycja mapy cyfrowej PowerDraft.
Skróty klawiaturowe.
Opracował: Nowak Paweł
Prezentacja Piotr Mucha Menu.
Wspólne skoroszytów Wspólne użytkowanie skoroszytów Arkusze i skoroszyty Tworzenie nowego skoroszytu Obliczenia w skoroszytach Przeglądanie wzorów w skoroszytach.
Klawiatura i urządzenia wskazujące
Programowanie Lokalnych Aplikacji .NET
„Zasady formatowania plików w formacie Microsoft Word”
WINDOWS 95.
Tworzenie nowej biblioteki
Panel sterowania.
Pliki WSADOWE.
PRACA W DOMENIE Różnice użytkowe między pracą w domenie i grupie roboczej. 1. Ekran logowania. - wciśnięcie klawiszy [Ctrl+Alt+Delete], a następnie podanie.
Obsługa programu FreeMind
SKRÓTY KLAWISZOWE MYMEK I TOMIX.
Visual C++ Zastosowania Informatyki Wykład 6 Copyright, 2003 © Adam Czajka.
C# Windows Forms Zastosowania Informatyki Wykład 3
C# Windows Forms Zastosowania Informatyki Wykład 2
Odczytywanie numeru seryjnego systemu operacyjnego komputera. (z ang
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Programowanie w Środowisku Windows Common controls.
Podstawy użytkowania komputerów - ćwiczenia
Tajemnice klawiatury.
Tajemnice klawiatury Opracowanie: mgr Barbara Benisz SP nr 20 w Rybniku
Podstawy obsługi komputera Klawiatura komputera, skróty klawiszowe
Użytkowanie komputerów Moduł 2
Sekrety klawiatury czyli jak sobie poradzić bez myszki
Wprowadzenie do edytorów tekstu.
Poznaj bliżej program Microsoft Office Word 2007
Programowanie w Środowisku Windows
Tadeusz Ziębakowski Zachodniopomorski Uniwersytet Technologiczny.
Podstawy programowania II
Kurs komputerowy - podstawy
Wykonał: Mariusz Trypuć
(C) Studenckie Koło Naukowe Bibliotekoznawców UŁ Kurs komputerowy dla słuchaczy Łódzkiego Uniwersytetu Trzeciego Wieku Zajęcia drugie Obsługa edytora tekstu.
Word to proste!.
Informatyka Pisanie na ekranie.
Programowanie obiektowe – zastosowanie języka Java SE
TECHNOLOGIE INFORMATYCZNE Tydzień 6
Edytor tekstu Word.
Na pasku komunikatów kliknij przycisk Włącz edytowanie,
Formatowanie tekstu w Microsoft Word
Okienkowy system operacyjny
R E F R I G E R A T I O N A N D A I R C O N D I T I O N I N G F O O D R E T A I L R E F R I G E R A T I O N A N D A I R C O N D I T I O N I N G 1 Sterowniki.
Etapy uruchamiania systemu Pliki konfiguracyjne
ARKUSZ KALKULACYJNY EXCEL wiadomości wstępne
Poznajemy klawiaturę Przygotowała: Barbara Tomkowiak.
Program Logomocja.
Systemy operacyjne Wykład 3a Działanie aplikacji okienkowej dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki
Podstawy technologii informacyjnej część II Anna Wysocka.
Klawiatura i mysz.
Wzorce slajdów, animacje, różne orientacje slajdów
SAMOUCZEK PRZYKŁAD ZASTOSOWANIA PROGRAMU DO MODELOWANIA TARCZ.
Podsłuchiwanie klawiatury z użyciem mechanizmu Windows Hooks
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
poziom średniozaawansowany
Komunikaty Windows Jacek Matulewski 22 września 2012 Programowanie Windows
Wykład 9 Programowanie w Windows 1.Programowanie zdarzeniowe 2.Zdarzenia obsługiwane przez Windows 3.Aplikacja obsługująca klawisz myszki 4.AppWizard PO9-1.
Pakiety numeryczne Graphical User Interface Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
obsługa wyświetlacza graficznego
Hooks w systemie Windows Autorzy: Paweł Kwiecień, Wojciech Kruczkowski Temat: Modelowanie użytkowników Zadaniem jest stworzenie (lub modyfikacja) systemu,
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Skróty klawiszowe. Ctrl + A Zaznacz wszystko Ctrl + B Pogrubienie.
Graficzny Interfejs Użytkownika
Microsoft® Office Word 2007 — szkolenie
Tworzenie graficznego interfejsu użytkownika (GUI)
Odczytywanie numeru seryjnego systemu operacyjnego komputera. (z ang
Zapis prezentacji:

Programowanie w Środowisku Windows Mysz i klawiatura Programowanie w Środowisku Windows

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

Programowanie w Środowisku Windows 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

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

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

Programowanie w Środowisku Windows Focus okna Systemowa kolejka komunikatów Rozsyłanie komunikatów Po jednym Adresat – okno posiadające focus Możliwa zmiana focusa Komunikaty z myszy i klawiatury sa w systemowej kolejce i rozsylane po jednym do okna, ktore ma akurat focus. Obsluga komunikatu moze zmienic focus okna, dlatego okno nie otrzymuje wiecej niz jeden komunikat. Mozna pokazac przyklad z KEYDOWN / KEYUP (albo zasygnalizowac, ze pokaze sie pozniej) – jezeli sie debuguje, to dochodzi tylko komunikat DOWN – UP jest juz kierowany do VS Programowanie w Środowisku Windows

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

Programowanie w Środowisku Windows 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 Klawisze systemowe (Alt+...) mozna zablokowac poprzez wylaczenie obslugi komunikato SYS. Przyklad – Alt+F4. Niektore przechwytywane przez system, np Alt+Tab GetMessageTime – stempel czasowy komunikatu pobranego za pomoca GetMessage Programowanie w Środowisku Windows

Programowanie w Środowisku Windows Klawiatura Parametry komunikatów KEY wParam – kod VK_*** VK_MENU = Alt lParam Repeat Count Context Code Repeat Count > 1 – aplikacja nie nadaza z obsluga – mozna zignorowac, zeby nie kumulowac akcji Context Code: 1 dla systemowych (wyjatek – gdy okno jest aktywne, ale zminimalizowane, wtedy normalne przyciski przychodza jako SYS z flaga 0); 0 dla pozostalych (wyjatek – znaki regionalne, np. Alt+a) Przyklad: - ustawic prior na niski, poruszac myszka case WM_KEYDOWN: // while (GetAsyncKeyState (VK_F1) >= 0) ; if(LOWORD(lParam) > 1) { _stprintf(pszHitTestText, _T("Repeat: %d"), LOWORD(lParam)); MessageBox(hwnd, pszHitTestText, _T("a"), 0); } return 0; Programowanie w Środowisku Windows

Programowanie w Środowisku Windows Klawiatura Sprawdzenie stanu klawisza GetKeyState(VK_***) Klawisze dwustanowe (CapsLock) Uwaga: stan klawiatury w momencie otrzymania komunikatu Sprawdzanie asynchroniczne GetAsyncKeyState() GetKeyState – zwraca wart ujemna jak klawisz jest wcisniety (najstarszy bit ustawiony) lub dodatnia gdy przelaczony (najmlodszy bit ustawiony). Nie mozna zrobic czegos takiego: while (GetKeyState (VK_F1) >= 0) ; - program zawisnie. Async sprawdza stan przy kazdorazowym wywolaniu/ Programowanie w Środowisku Windows

Programowanie w Środowisku Windows 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() Wiązanie komunikatow – np. pomiedzy myszka i klawiatura Programowanie w Środowisku Windows

Programowanie w Środowisku Windows 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() Unicode / Ansi – zaleznie od sposobu rejestarcji klasy Deadchar – znaki diakrytyczne, informacja powielona w komunikacie Char Programowanie w Środowisku Windows

Programowanie w Środowisku Windows Klawiatura Generacja komunikatu WM_CHAR TranslateMessage() Kolejność komunikatów: DOWN, CHAR, UP Obsługa znaków posiadających kod ASCII Zasada generacji komunikatow: KEYDOWN -> CHAR -> KEYUP Przyklad – usuniecie translate. Okno otrzymuje KEYUP tylko, gdy ma focus (postawic breakpoint na KEYDOWN – KEYUP nie dotrze, bo otrzyma go VS). --- Koniec wykladu Programowanie w Środowisku Windows

Programowanie w Środowisku Windows 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 Karetke nalezy ukryc podczas rysowania. Programowanie w Środowisku Windows

Programowanie w Środowisku Windows Klawiatura Funkcje obsługi karetki CreateCaret() Get / SetCaretPos() ShowCaret() HideCaret() DestroyCaret() Szybkość migania Get / SetCaretBlinkTime() Przyklad z czasem – oddzialuje na caly system Programowanie w Środowisku Windows

Programowanie w Środowisku Windows Klawiatura Klawisze specjalne Klawisze myszy Klawisze zasilania WM_APPCOMMAND wParam – uchwyt okna lParam – identyfikator DefWindowProc() – przekazuje rodzicowi lub do powłoki Jezeli okno nie jest oknem potomnym, to przekazuje do powloki Programowanie w Środowisku Windows

Programowanie w Środowisku Windows 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

Programowanie w Środowisku Windows 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) wParam Specifies the hit-test value returned by the DefWindowProc function as a result of processing the WM_NCHITTEST message. For a list of hit-test values, see WM_NCHITTEST. Programowanie w Środowisku Windows

Programowanie w Środowisku Windows 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 Przyklad – rysowanie kropki przy kazdym mousemove GET_WHEEL_DELTA_WPARAM – zwraca przesuniecie w WHEEL_DELTA (=120) + do gory - na dol Programowanie w Środowisku Windows

Programowanie w Środowisku Windows Mysz – obsługa Przechwytywanie komunikatów myszy SetCapture(), ReleaseCapture() WM_CAPTURECHANGED Dwuklik Styl okna CS_DBLCLKS LBUTTONDBLCLK zamiast LBUTTONDOWN Zgodność akcji Uwazac z przechwytywaniem komunikatow – glownie stosowac do buttonUP Pierwszy klik powinien zawsze robic to samo Programowanie w Środowisku Windows

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 The WM_NCHITTEST message is sent to a window when the cursor moves, or when a mouse button is pressed or released. If the mouse is not captured, the message is sent to the window beneath the cursor. Otherwise, the message is sent to the window that has captured the mouse. HTERROR – beep Mozna pokazac, ze nie jest wysylany w momencie, gdy przechwytywane sa komunikaty myszy z przycisnietym klawiszem myszy. Programowanie w Środowisku Windows

Programowanie w Środowisku Windows Mysz – śledzenie TrackMouseEvent() WM_MOUSEHOVER WM_MOUSELEAVE Struktura TRACKMOUSEEVENT Czas domyślny – 400ms Mozna sobie zarzadac wyslania komunikatu, jezeli mysz opusci / przebywa w oknie przez zadany czas Programowanie w Środowisku Windows

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

Programowanie w Środowisku Windows 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

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