Microsoft Visual C++



Podobne dokumenty
Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Dodanie nowej formy do projektu polega na:

Dodawanie operacji dodatkowych w WAPRO Mag.

Programowanie na poziomie sprzętu. Programowanie w Windows API

Lista wprowadzonych zmian w systemie Vario v. 3.3 od wydania do wydania

Delphi podstawy programowania. Dialogi

Praca w środowisku Visual Studio 2008, Visual C

Programowanie obiektowe

Architektura interfejsu użytkownika

Synchronizator plików (SSC) - dokumentacja

Programowanie obiektowe

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Microsoft Visual C : praktyczne przykłady / Mariusz Owczarek. Gliwice, cop Spis treści

Laboratorium Systemów SCADA

e-podręcznik dla seniora... i nie tylko.

Laboratorium Systemów Operacyjnych

Nr: 15. Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1. Data modyfikacji:

Makra Access 2003 wg WSiP Wyszukiwanie, selekcjonowanie i gromadzenie informacji Ewa Mirecka

I Tworzenie prezentacji za pomocą szablonu w programie Power-Point. 1. Wybieramy z górnego menu polecenie Nowy a następnie Utwórz z szablonu

Oto istotne informacje o skrótach klawiszowych ZoomText:

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

Dell UltraSharp UP3017 Dell Display Manager Instrukcja użytkownika

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

PWI Instrukcja użytkownika

ABC 2002/XP PL EXCEL. Autor: Edward C. Willett, Steve Cummings. Rozdział 1. Podstawy pracy z programem (9) Uruchamianie programu (9)

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Zasady Programowania (Projektowanie) C++ - część 6 1/9 Programowanie Wizualno Obiektowe (3)

Podstawy technologii cyfrowej i komputerów

Zadanie 11. Przygotowanie publikacji do wydrukowania

7 Business Ship Control dla Symfonia Handel

Advance CAD 2016 SP2. W tym dokumencie opisano ulepszenia w Advance CAD Service Pack 2. Co nowego w Advance CAD 2016 SP2

Programowanie Obiektowe GUI

RCP Grafiki zmiany w kontekście funkcjonowania nieobecności w grafiku pracy

Biblioteka Windows Forms

1.1. Programowanie w Visual C++ Programowanie w Visual C++ Środowisko programisty Visual C++ Środowisko programisty Visual C++

4.1 Użytkownicy [ Definicje ] 12. Po zakończonej pracy możemy wylogować użytkownika, korzystając z funkcji Wybór użytkownika

Zaawansowane Programowanie Obiektowe. Microsoft Visual Studio 2015

Wykład 5 Okna MDI i SDI, dziedziczenie

BAZY DANYCH MAKRA I PRZYCISKI. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Instrukcja uŝytkowania programu

Visual Basic w programie Excel dla Windows

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

imei CYFROWE PRZETWARZANIE SYGNAŁÓW Laboratorium Temat: Tworzenie aplikacji w środowisku LabWindows/CVI Instytut Metrologii, Elektroniki i Informatyki

Projekt Hurtownia, realizacja rejestracji dostaw produktów

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

1. Opis okna podstawowego programu TPrezenter.

1. Przypisy, indeks i spisy.

Instrukcja ręcznej konfiguracji połączenia z Internetem przez. modem ED77 w systemie Windows XP

Po wstawieniu widzimy zmianę w zakładce Artykuł do symbolu został przyporządkowany przycisk z bazy artykułów (rys. 4.33).

Połączenie AutoCad'a z bazą danych

Instrukcja redaktora strony

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Słowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS

Edytor tekstu MS Office Word

OBIEKTY TECHNICZNE OBIEKTY TECHNICZNE

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows Vista

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7

Temat: Organizacja skoroszytów i arkuszy

1. Dodawanie integracji

1 Moduł Inteligentnego Głośnika


Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Tworzenie prezentacji w MS PowerPoint

1 Moduł Inteligentnego Głośnika 3

7 Business Ship Control dla Systemu Zarządzania Forte

Platforma e-learningowa

Uruchamianie programu

Aplikacje w środowisku Java

Następnie uruchom b-link z Menu Start lub ponownie uruchom komputer.

Rysunek 1: Okno z lista

Program Rejestr zużytych materiałów. Instrukcja obsługi

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Zaawansowane aplikacje internetowe - laboratorium

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Rozdział II. Praca z systemem operacyjnym

Tablice (jedno i wielowymiarowe), łańcuchy znaków

akademia androida Intencje oraz URI część III

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows XP

5.4. Tworzymy formularze

Program V-SIM tworzenie plików video z przebiegu symulacji

OPIS PROGRAMU USTAWIANIA NADAJNIKA TA105

Projekt Hurtownia, realizacja skojarzeń dostawców i produktów

Na komputerach z systemem Windows XP zdarzenia są rejestrowane w trzech następujących dziennikach: Dziennik aplikacji

Dane słowa oraz wyrażenia są tłumaczone przy pomocy polecenia Przetwarzanie > Tłumaczenie

Platformy Programowania

Ćwiczenia z systemu operacyjnego WINDOWS

OPIS TECHNICZNY I INSTRUKCJA OBSŁUGI PROGRAMU DO MIERNIKA ZOT4. PM wer. 5.0

Tablice, funkcje - wprowadzenie

Instrukcja obsługi elektronicznego modułu reklamacyjnego aplikacji KAMSOFT wdrożenie rozwiązań w hurtowniach farmaceutycznych Grupy Neuca

1. Wybierz polecenie rysowania linii, np. poprzez kliknięcie ikony W wierszu poleceń pojawi się pytanie o punkt początkowy rysowanej linii:

Transkrypt:

Microsoft Visual C++

Typy aplikacji okna dialogowe

Typy aplikacji Multiple Document

Obsługa zdarzeń - komunikaty W celu obsługi zdarzeń pochodzących z wielu źródeł funkcja MainLoop odbiera komunikaty systemowe i wywołuje funkcje napisane przez użytkownika System generuje komunikaty o: zdarzeniach związanych z klawiaturą (wciśnięciu klawisza) zdarzeniach związanych z myszy (ruchu myszki, wciśnięciu/zwolnieniem przycisku zmianą rozmiaru okna przesłonięciem, koniecznością przerysowania Mysz Klawiatura SYSTEM OPERACYJNY komunikat Program Mysz() Klawisz() MainLoop Przerysuj()

Komunikacja w Windows komunikaty Komunikaty okna: WM_CREATE, WM_INIT, WM_WM_CLOSE, WM_KILLFOCUS, WM_ACTIVATE, WM_MOVE Komunikaty myszy: WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONCLIC, WM_MOUSEMOVE, WM_MOUSEWHEEL Komunikaty klawiatury: WM_KEYDOWN, WM_KEYUP, WM_CHAR

Komunikacja w Windows komunikaty cd. Komunikaty przycisku BN_CLICKED, BN_DOUBLECLICKED, BN_SETFOCUS Komunikaty listy: LBN_SELCHANGE, LBN_DBCLICK Komunikaty Timera: WM_TIMER

Elementy składowe okna Projekt okna dialogowego (interface u) jest odsprzęgnięty od obiektów i klas aplikacji. Każdy element okna opisywany jest przez szereg cech właściwości: ID -identyfikator komponentu (Etykieta, której przypisana jest liczba) Caption napis widoczny na ekranie (o ile komponent na to pozwala

Zmienne skojarzone (member variable) Każda aplikacja ma szereg klas. Część z nich są skojarzone z oknami dialogowymi, dokumentami, widokami i aplikacją. Każde okno dialogowe ma skojarzoną z nim klasę pochodzącą od klasy CDialog Każdy widok dokumentu ma skojarzoną z nim klasę pochodzącą od CView Wewnątrz tych klas mogą znajdować się deklarację atrybutów (zmiennych, które są skojarzone z elementami okna)

Zmienne skojarzone cd. Wyróżnia się 2 typy zmiennych skojarzonych z komponentami okna Control pozwalające na sterowanie elementem okna (ukrywanie, zmianę ustawień, oraz dostęp do wartości) Value zmienna przechowująca wartość danego elementu

Synchronizacja zmiennych skojarzonych Okno jest w pewien sposób odsprzęgnięte od obsługującej go klasy. Stan zmiennych skojarzonych jest synchronizowany z zawartością okna w metodzie DoDataExchange Metoda ta wywoływana jest pośrednio przez metodę: UpdateData(true);// gdy należy ukatualnić wartości zmiennych na podstawie wartości w oknie dialogowym UpdateData(false); //gdy należy uaktualnić zawartość okna dialogowego na podstawie wartości zmiennych

Klasa kontrolująca stan listy Do obsługi listy służy klasa CListBox Obiekt (m_lista) klasy CListBox ma następujące metody: int idx=m_lista.addstring( napis ); //dodaje napis, zwraca pozycję na liście m_lista.deletestring(n); //usuwa napis nr n z listy idx=m_lista.getcursel(); //Zwraca nr aktualnie podswietlonego napisu int MAX=m_lista.Count(); //zwraca ilosc elementow na liscie

Inne klasy MFC Klasa do obsługi łańcuchów tekstowych CString napis; napis= tekst ; Klasa punktu CPoint przechowuje pozycję: CPoint a(3,5); //punkt x=3, y=5 a.x=6; //punkt x=6, y=5 Bitampa CBitmap bt; bt.loadbitmap( Nazwa ); bt.loadbitmap(id_zasobow);

Rysowanie kontekst okna Kontekst jest obiektem, który umożliwia rysowanie i wyświetlanie w obszarze okna, które zostało z nim skojarzone. Stworzenie kontekstu (wewnątrz klasy pochodzącej od CView lub CDialog: CClientDC kontekst(this); Metody klasy CClientDC: Kontekst.MoveTo(x,y); Kontekst.LineTo(x,y); Kontekst.TextOut(x,y, napis );

Konteksty pamięciowe Są wykorzystywane w celu przygotowania rysunku w pamięci, a następnie można go wyświetlić w pewnym oknie w zadanej lokalizacji jeśli zdefiniowane jest pole klasy: CBitmap Buffor; to można wykonać następujące operacje: CClientDC Kontekst(this); //tworzy kontekst okna CDC MemDC; //obiekt kontekstu pamięciowego Buffor.CreateCompatibileBitmap(&Kontekst,szerokosc,wysokosc); //tworzy bitmape o rozdzielczosci i ustawieniach takich jak kontekst okna MemDC.CreateCompatibileDC(&Kontekst); //Tworzy kontekst pamięciowy kompatybilny kontekstem okna MemDC.SelectObject(&Buffor); //powiązanie bufora z kontekstem pamięciowym MemDC.LineTo(10,10); //rysowanie w kontekście pamięciowym; Kontekst.StretchBlt(poz_x,poz_y,szer,wys,&MemDC,poz_x_źr, poz_y_źr,szer_x_źr, szer_y_źr,srccopy); //wyświetla kontekst pamięciowy na ekranie

Przerysowywanie okien Każde okno gdy jest ukryte, przysłonięte, lub gdy zmienia się jego rozmiar, wymaga przerysowania. Wszystkie obiekty widoczne w oknie muszą być rysowane w metodzie: OnPaint (gdy okno pochodzi z klasy CDialog) OnDraw (gdy okno pochodzi z klasy CView) Przerysowanie okna może być wymuszone przez wywołanie metody: Invalidate();

Komendy (menu, przyciski, skróty) Każda komenda w aplikacji może być wowyłwana z: menu tzw. toolbox u za pomocą skrótu klawiszowego (accelerator) W Visual C z dla każdej komendy tworzy się odpowiedni identyfikator (np. przez dodanie pozycji menu, a następnie ten sam identyfikator przypisuje się ikonce (toolbar) lub klawiszowi skrótu (accelerator) Po wybraniu odpowiedniej pozycji z menu generowany jest komunikat (message) Obsługa takiego komunikatu może znajdować się w dowolnej klasie aplikacji.

Aplikacje wielookienkowe W VC istnieje mozliewość tworzenia aplikacji złozonej z dowolnej liczby róznych okien. Każde okno jest opisane poprzez projekt formularza oraz dedykowaną mu klasę Wyświetlenie okna modalnego polega na zadeklarowaniu obiektu klasy tegoż okna, a następnie na wywołaniu metody DoModal()

Aplikacje Wielookienkowe {//... kod metody pewnego okna CMojeOkno okno; //deklaracja nowego okna int res=okno.domodal(); //wyswietlenie okna if(res==idok) { //uzytkownik w wyswietlonym oknie wciasnal OK }

Wyświetlanie komunikatów Dla MFC dowyświetlania okien komunikatów o błędach, ostrzeżeń i pytań wykorzystuje się funkcię int wynik=afxmessagebox( komunikat,typ,0); gdzie typ określa typ okna: MB_ABORTRETRYIGNORE MB_OK MB_OKCANCEL MB_RETRYCANCEL MB_YESNO MB_YESNOCANCEL Wynik jest zależny od typu wciśniętego przycisku

Praca równoczesna - Timer Inicjacja: SetTimer(nr,T,NULL); //nr numer Timera 0-65535, T czas w [ms] //Musi być wykonana po stworzeniu okna dialogowego lub widoku (powinna się znajdować bądź w metodzie OnInitialUpdate, lub OnInitDialog) Należy skojarzyć komunikat WM_TIMER z odpowiednią funkcją która będzie wywoływana cyklicznie co T [ms]

Praca równoczesna - wątki Watek jest pewną częścią programu, która wykonywana jest równocześnie (współbieżnie) z programem głównym. Funkcja wątku (działa analogicznie jak funkcja main programu głównego ma następującą definicję: UINT FunkcjaWatku(LPVOID dane) { } //kod watku.

Wątki cd Gdzie argument dane są typu void*, (dowolny wskaźnik) Kod uaktywniający wątek: CWinThread *watek; watek = AfxBeginThread( FunkcjaWatku, (LPVOID)&dane)); gdzie drugi argument jest w wskaźnikiem do dowolnej zmiennej lub obiektu

Metody CWinThread watek->suspendthread(); //zatrzymuje (usypia) wątek; watek->resumethread(); //Aktywuje wątek z uśpienia watek->afxendthread(exitcode); //wymusza zakończenie wątku z kodem (ExitCode)

Pożyteczne funkcje Operaceje na plikach: CreateFile //stworzenie otwarcie pliku (również portu RS232) CloseHandle //zamknięcie pliku ReadFile WriteFile

Pożyteczne funkcje Konwersja atoi //char[]->int atof //char[]->float itoa //int ->char[] ftoa //float -> char[];