Praca w środowisku Visual Studio 2008, Visual C++ 2008 mgr inż. Tomasz Jaworski tjaworski@kis.p.lodz.pl http://tjaworski.kis.p.lodz.pl/
Tworzenie aplikacji konsolowych 2
3
Tworzenie nowego projektu aplikacji konsolowej 4
Wybranie odpowiedniego szablonu 5
Konfiguracja szablonu projektu poprzez czarodzieja 6
Aplikacja konsolowa+prekompilowane nagłówki 7
8
Modyfikacja ustawień kodowania znaków 9
Unicode -> Multi-Byte wchar_t -> char 10
Dodanie biblioteki Windows Sockets 11
Modyfikacja głównego pliku nagłówkowego 12
Pierwsze uruchomienie! 3 2 1 4 13
Dodawanie nowego projektu do istniejącego rozwiązania (solution) Konstrukcja grupy projektów (solution/rozwiązanie): 14
Dodanie nowego projektu 15
Dodanie nowego projektu 16
Przykładowy widok dla kilku projektów 17
Wybranie projektu startowego 18
Nowy projekt startowy: projekt2 19
Struktura katalogów dla grupy projektów: Główny katalog grupy.sln przechowuje listę projektów,.suo przechowuje ustawienia/opcje użytkownika (np. listę otwartych okien),.ncb Baza podpowiedzi wyświetlanych podczas pisania kodu, Przed programów projektu/ćwiczeń proszę usuwać pliki z rozszerzeniami zaznaczonymi kolorem czerwonym! 20
Struktura katalogów dla grupy projektów: Katalogi wyjściowe budowania projektów.exe pliki wykonywalny,.ilk informacje dla konsolidatora,.pdb informacja dla programu uruchomieniowego (debuggera), Przed programów projektu/ćwiczeń proszę usuwać pliki z rozszerzeniami zaznaczonymi kolorem czerwonym! 21
Struktura katalogów dla grupy projektów: Katalogi wyjściowe budowania projektów.obj pliki pośrednie kompilatora,.pch zawiera skompilowane nagłówki,.res plik z zasobami aplikacji,.idb plik z zależnościami między poszczególnymi blokami aplikacji,.manifest zawiera informacje konieczne do poprawnego uruchomienia (wersje wymaganych bibliotek C++, poziom bezpieczeństwa, itd.), Przed programów projektu/ćwiczeń proszę usuwać pliki z rozszerzeniami zaznaczonymi kolorem czerwonym! 22
Struktura katalogów dla grupy projektów: Katalog źródłowy projektu.h/.hpp pliki nagłówkowe C/C++,.c/.cpp pliki źródłowe C/C++,.vcproj plik opisujący projekt (ustawienia projektu),.user ustawienia użytkownika dla projektu Przed programów projektu/ćwiczeń proszę usuwać pliki z rozszerzeniami zaznaczonymi kolorem czerwonym! 23
Wstęp do MFC Microsoft Foundation Classes 24
Czym jest MFC? MFC (Microsoft Foundation Classes) to zestaw bibliotek będących zbiorem klas języka C++. Przeznaczeniem ich jest przyspieszenie pracy programistów poprzez opakowanie funkcjonalności Windows API w klasach. 25
Skąd czerpać informacje o MFC? [1] Al Williams, MFC. Czarna księga, 1998, [2] Jon Bates, Tim Tompkins, Poznaj Visual C++ 6 [3] MSDN [4] http://www.codeproject.com 26
Tworzenie nowego projektu 27
28
Ustawienie domyślnego okna, kodowania znaków, sposobu konsolidacji z bibliotekami MFC 29
Ustawienie tytułu głównego okna. Można go również zmienić w trakcie edycji kodu. 30
MFC i Windows Sockets API MFC dostarcza klasy opakowujące interfejs Windows Sockets. Jednak na zajęciach skorzystamy z natywnych ("niskopoziomowych ) funkcji gniazdowych 31
Dostosowanie nazw generowanych klas 32
Pierwsze uruchomienie aplikacji w MFC 33
Nowa aplikacja w MFC po uruchomieniu 34
Dodawanie nowej kontrolki 3 2 1 35
Modyfikacja napisów 1 2 36
Ustawienie identyfikatora przycisku, np. IDC_BUTTON_PRZYCISK 1 2 37
Dodawanie zdarzenia (reakcji na wciśnięcie przycisku) 38
Wybieranie miejsca i typu generowanego zdarzenia 2 1 3 4 39
Zdarzenie zostało wygenerowane. Teraz należy uzupełnić je kodem. 40
Dodawanie zmiennej skojarzonej z kontrolką. 1 3 41 2
Ustawienie nazwy zmiennej skojarzonej 1 4 3 2 42
Modyfikacja pola tekstowego Dodatkowo, utworzony został nowy przycisk Zwiększ licznik z następującym kodem zdarzenia: 43
Wynik działania aplikacji 1 44
Dodanie pola tekstowego IDC_EDT_TEKST. CEdit edt_tekst; 45
Oraz przycisk obok pola tekstowego z poniższym kodem zdarzenia ON_BN_CLICKED 46
Wynik Ustawienie tekstu w kontrolce: this->edt_tekst.setwindowtexta("tekst"); 47
Tworzenie okna czata kontrola Rich Edit 2 1 3 2 48
Rich Edit 2 konieczna inicjalizacja 49
Tworzenie okna czata Kontrolka Rich Edit 2: Pozwala na kolorowanie i formatowanie tekstu Wymaga inicjalizacji Zwykła kontrolka wprowadzania tekstu: Wyświetla tylko tekst w standardowych kolorach Nie wymaga inicjalizacji Na potrzeby czata, dla obu kontrolek: Multiline = True; Vertical Scroll = True; 50
Kod zdarzenia BN_CLICKED Właność Multiline=true + "\r\n" + komunikat WM_VSCROLL pozwala na automatyczne przewijanie tekstu w oknie czata 51
Kontrolka przełącznika logicznego: Check Box Zmiana stanu kontrolki: int a = chk_opcja.getcheck(); if (a == TRUE) chk_opcja.setcheck(false); else chk_opcja.setcheck(true); 52
Tworzenie nowego okna dialogowego; dodanie definicji okna do zasobów Dodanie okna dialogowego w środowisku MFC polega na: 1. Utworzeniu okna w postaci zasobu systemu Windows 2. Utworzeniu klasy języka C++ obsługującej nowo dodane okno Wyświetlenie okna w aplikacji: 1. Dodanie pliku nagłówkowego.h nowej klasy utworzonego okna do pliku.cpp kodu, w którym okno to ma być wykorzystane 2. Wykonanie kodu: COknoTestowe okno; okno.domodal(); 53
Nowe okno, utworzone w zasobach projektu 54
Dodanie nowej klasy MFC obsługującej okno 55
Konfiguracja parametrów nowej klasy 56
Wyświetlenie okna w aplikacji: 1. Dodanie pliku nagłówkowego.h nowej klasy utworzonego okna do pliku.cpp kodu, w którym okno to ma być wykorzystane 2. Wykonanie kodu: COknoTestowe okno; okno.domodal(); 57
Dziękuję za uwagę!