Visual C++ Zastosowania Informatyki Wykład 6 Copyright, 2003 © Adam Czajka.

Slides:



Advertisements
Podobne prezentacje
Programowanie Windows
Advertisements

Jarosław Kuchta Komunikaty w Windows.
Programowanie obiektowe
Multimedia, prezentacje, wideo, dokumenty elektroniczne
Opracował: Nowak Paweł
Wyższa Szkoła Ekologii i Zarządzania
Tworzymy GAZETKĘ SZKOLNĄ w programie Publisher
Edytor Graficzny Paint
C# Windows Forms Zastosowania Informatyki Wykład 3
C# Windows Forms Zastosowania Informatyki Wykład 4, 5
C# Windows Forms Zastosowania Informatyki Wykład 2
Opracowała: Iwona Kowalik
autor: Andrzej Seneczko
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Tajemnice klawiatury.
Tajemnice klawiatury Opracowanie: mgr Barbara Benisz SP nr 20 w Rybniku
Sekrety klawiatury czyli jak sobie poradzić bez myszki
Programowanie w Środowisku Windows
Tadeusz Ziębakowski Zachodniopomorski Uniwersytet Technologiczny.
Podstawy programowania II
Do czego służą tabulatory?
A. Jędryczkowski - marzec 2005 r. ©
Opracowanie: mgr Barbara Benisz
Projekt jest współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego.
Wykonał: Mariusz Trypuć
Opracowanie Dorota Libera
Temat : Okna - większe i mniejsze, czyli operacje na oknach programu
(C) Studenckie Koło Naukowe Bibliotekoznawców UŁ Kurs komputerowy dla słuchaczy Łódzkiego Uniwersytetu Trzeciego Wieku Zajęcia drugie Obsługa edytora tekstu.
Edytor Vi.
Word to proste!.
Informatyka Pisanie na ekranie.
Poznajemy edytor tekstu Word
Programowanie obiektowe – zastosowanie języka Java SE
Programowanie w Środowisku Windows
TECHNOLOGIE INFORMATYCZNE Tydzień 6
Pierwsze kroki w edytorze tekstu
Edytor tekstu Word.
T. Pierwsze kroki w grafice komputerowej – poznajemy program Paint
zasady edycji, rodzaje i formy czcionek, formatowanie tekstów,
EDYTOR GRAFIKI "PAINT" Prezentacja ma na celu zapoznanie uczniów z podstawowymi funkcjami edytora grafiki Paint.
Okienkowy system operacyjny
ARKUSZ KALKULACYJNY EXCEL wiadomości wstępne
Projektowanie stron WWW
Poznajemy klawiaturę Przygotowała: Barbara Tomkowiak.
EDYTOR GRAFIKI PAINT - podstawy pracy.
Systemy operacyjne Wykład 3a Działanie aplikacji okienkowej dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki
EDYTOR GRAFIKI PAINT - podstawy pracy.
Klawiatura i mysz.
Podstawowe narzędzia programu Paint
Tworzenie graficznego interfejsu użytkownika (GUI)
Komputerowe malowanki
Poznajemy arkusz kalkulacyjny
TWORZENIE I FORMATOWANIE TABEL
Obiekty w edytorze tekstu
Formatowanie dokumentów
Podsłuchiwanie klawiatury z użyciem mechanizmu Windows Hooks
poziom średniozaawansowany
Operacje na plikach i folderach
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.
Wykład 11 Aplikacje SDI PO11-1 / 22 Single Document Interface 1.Klasy aplikacji SDI 2.Menu systemowe aplikacji SDI 3.Serializacja 4.Tworzenie widoku 5.Tworzenie.
Informatyka Mysz komputerowa.
Wykład 10 Programowanie w Windows 1.Aplikacja dialogowa (Dialog Based) PO10-1 / 26.
Hooks w systemie Windows Autorzy: Paweł Kwiecień, Wojciech Kruczkowski Temat: Modelowanie użytkowników Zadaniem jest stworzenie (lub modyfikacja) systemu,
Program naszych zajęć Zakres, który obejmują nasze kursy: – Podstawowa obsługa komputera – Obsługa przeglądarek i wyszukiwarek – Obsługa kont mailowych.
Wyższa Szkoła Informatyki i Zarządzania
Opracował Tomasz Durawa
Programowanie obiektowe – zastosowanie języka Java SE
Tworzenie graficznego interfejsu użytkownika (GUI)
Zapis prezentacji:

Visual C++ Zastosowania Informatyki Wykład 6 Copyright, 2003 © Adam Czajka

Spis treści Obsługa myszy Obsługa klawiatury Grafika I

Copyright, 2003 © Adam Czajka Obsługa myszy Zdarzenia pochodzące od myszki Wciśnięcie przycisku Ruch kursora Podwójne wciśnięcie przycisku

Copyright, 2003 © Adam Czajka Obsługa myszy Komunikaty myszki WM_LBUTTONUP- lewy przycisk wyciśnięty WM_LBUTTONDOWN - lewy przycisk wciśnięty WM_LBUTTONDBLCLK- lewy przycisk podwójne kliknięcie WM_MOUSEMOVE- zmiana położenia kursora myszy WM_MOUSEWHEEL- zmiana położenia kółka na myszce

Copyright, 2003 © Adam Czajka Obsługa myszy Komunikaty myszki WM_RBUTTONUP WM_RBUTTONDOWN prawy przycisk WM_RBUTTONDBCLK WM_MBUTTONUP WM_MBUTTONDOWN środkowy przycisk WM_MBUTTONDBCLK

Copyright, 2003 © Adam Czajka Obsługa myszy Dodawanie funkcji obsługi myszy

Copyright, 2003 © Adam Czajka Obsługa myszy Dodawanie funkcji obsługi myszy void CAppView::OnLButtonDown(UINT nFlags, CPoint point) { char txt[30]; sprintf(txt, [%d, %d], point.x, point.y); theApp.m_pMainWnd->SetWindowText(txt); // CView ::OnLButtonDown(nFlags, point); } UINT nFlags – stan klawiszy funkcyjnych (SHIFT – MK_SHIFT, CTRL – MK_CONTROL) CPoint point – położenie kursora myszy w obszarze roboczym okna

Copyright, 2003 © Adam Czajka Obsługa myszy Dodawanie funkcji obsługi myszy

Copyright, 2003 © Adam Czajka Obsługa myszy Dodawanie funkcji obsługi myszy void CAppView::OnMouseMove(UINT nFlags, CPoint point) { char txt[30]; sprintf(txt, [%d, %d], point.x, point.y); theApp.m_pMainWnd->SetWindowText(txt); // CView :: OnMouseMove(nFlags, point); }

Copyright, 2003 © Adam Czajka Obsługa myszy Dodawanie funkcji obsługi myszy Zdarzenia od myszki docierają do okienka tylko wtedy, gdy kursor myszy znajduje się wewnątrz obszaru roboczego okna – przesunięcie kursora na ramkę okna powoduje wstrzymanie wysyłania komunikatów od myszki. Zdarzenie związane z ramką okienka należą do grupy zdarzeń WM_NC... afx_msg void OnNcLButtonDown( UINT nHitTest, CPoint point ); HTMENU, HTBORDER, HTCAPTION, HTSYSMENU, HTZOOM

Copyright, 2003 © Adam Czajka Obsługa myszy Dodawanie funkcji obsługi myszy obszar roboczy aplikacji menu aplikacji pasek narzędzi ramka z tytułem pasek przewijania wiersz statusu aplikacji

Copyright, 2003 © Adam Czajka Obsługa myszy Przechwytywanie myszy void CAppView::OnLButtonDown(UINT nFlags, CPoint point) { SetCapture(); } void CAppView::OnLButtonUp(UINT nFlags, CPoint point) { ReleaseCapture(); } CWnd::SetCapture() CWnd::ReleaseCapture()

Copyright, 2003 © Adam Czajka Obsługa myszy Zmiana kursora myszy void CAppView::OnLButtonDown(UINT nFlags, CPoint point) { BeginWaitCursor(); } void CAppView::OnLButtonUp(UINT nFlags, CPoint point) { EndWaitCursor(); } BeginWaitCursor() EndWaitCursor() ::SetCursor(::LoadCursor(AfxGetInstanceHandle(), IDC_UPARROW);

Copyright, 2003 © Adam Czajka Obsługa klawiatury Zdarzenia związane z klawiaturą WM_KEYUP- klawisz wyciśnięty WM_KEYDOWN - klawisz wciśnięty WM_CHAR- wprowadzono znak drukowalny klawisze mają przyporządkowane kody wirtualne VK_XXX: VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN, VK_RETURN

Copyright, 2003 © Adam Czajka Obsługa klawiatury Zdarzenia związane z klawiaturą – sekwencja zdarzeń WM_KEYDOWN WM_KEYDOWN WM_CHAR WM_CHAR WM_KEYUP WM_KEYUP

Copyright, 2003 © Adam Czajka Obsługa klawiatury Komunikaty pochodzące od klawiatury

Copyright, 2003 © Adam Czajka Obsługa klawiatury Komunikaty pochodzące od klawiatury void CAppView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { //nChar – znak wprowadzony z klawiatury //nRepCount – licznik powtórzeń znaku CView::OnChar(nChar, nRepCnt, nFlags); }

Copyright, 2003 © Adam Czajka Grafika Rodzaje grafiki Grafika rastrowa - Bitmapy (*.bmp, *.jpg) - Video (*.avi) Grafika wektorowa - Animacje (*.wmf) - Rysunki Tekst

Copyright, 2003 © Adam Czajka Grafika Urządzenia GDI GDI (kontekst urządzenia) Urządzenia fizyczneUrządzenia wirtualne Aplikacja MFC

Copyright, 2003 © Adam Czajka Grafika Kontekst urządzenia – klasa CDC class CDC { HDC m_hDC; public: CDC( );... virtual BOOL CreateDC( LPCTSTR lpszDriverName, LPCTSTR lpszDeviceName, LPCTSTR lpszOutput, const void* lpInitData ); virtual BOOL CreateCompatibleDC( CDC* pDC ); virtual BOOL DeleteDC( );... }

Copyright, 2003 © Adam Czajka Grafika Odrysowywanie okienka odpowiedzi na żądanie systemu Windows (komunikat WM-PAINT) odpowiedzi na polecenia użytkownika (implementacja obsługi poleceń w tworzonym programie) Aplikacja musi odrysować okienko w:

Copyright, 2003 © Adam Czajka Grafika Odrysowywanie okienka Każda aplikacja musi umieć odrysować swoje okienka na żądanie systemu Windows

Copyright, 2003 © Adam Czajka Grafika Odrysowywanie okienka void CAppView::OnDraw(CDC* pDC) { CAppDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // rysuje zielony prostokąt RECT rect; GetClientRect(&rect); CBrush brush(RGB(0, 255, 0)); pDC->FillRect(&rect, &brush); }

Copyright, 2003 © Adam Czajka Grafika Odrysowywanie okienka (0, 0) (W, H) CWnd::GetClientRect(LPRECT rect); H W

Copyright, 2003 © Adam Czajka Grafika Komunikat WM_PAINT

Copyright, 2003 © Adam Czajka Grafika Komunikat WM_PAINT void CAppView::OnPaint() { CPaintDC dc(this); // device context for painting RECT rect; GetClientRect(&rect); CBrush brush(RGB(0, 255, 0)); dc.FillRect(&rect, &brush); // Do not call CView::OnPaint() for painting messages }

Copyright, 2003 © Adam Czajka Grafika Komunikat WM_PAINT UpdateWindow(); – wysyła komunikat WM_PAINT Invalidate(BOOL erase=TRUE); – unieważnia obszar roboczy okna BOOL RedrawWindow( LPCRECT lpRectUpdate = NULL, CRgn* prgnUpdate = NULL, UINT flags = WCE_IF( 0 RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE )); – odrysowywuje okienko Generowanie komunikatu WM_PAINT (wymuszenie odmalowania okienka) Komunikatu WM_PAINT nie wysyłamy za pomocą SendMessage, czy PostMessage ale poprzez specjalne funkcje

Copyright, 2003 © Adam Czajka Grafika Rysowanie w oknie poza WM_PAINT void CAppView::OnLButtonUp(UINT nFlags, CPoint point) { CDC *pDC = GetDC(); RECT rect; GetClientRect(&rect); CBrush brush(RGB(0, 255, 0)); pDC->FillRect(&rect, &brush); ReleaseDC(pDC); } pobranie kontekstu do okienka zwolnienie kontekstu do okienka kontekst okienka pochodzi z puli uchwytów, których liczba jest OGRANICZONA !!!

Copyright, 2003 © Adam Czajka Grafika Rysowanie w oknie poza WM_PAINT – inne podejście void CAppView::OnLButtonUp(UINT nFlags, CPoint point) { CDC *pDC = GetDC(); RECT rect; GetClientRect(&rect); CBrush brush(RGB(0, 255, 0)); pDC->FillRect(&rect, &brush); ReleaseDC(pDC); }

Copyright, 2003 © Adam Czajka Podsumowanie Obsługa myszy Obsługa klawiatury Grafika I