Aplikacja dialogowa MFC krok po kroku

razhael 2,060 views 48 slides May 19, 2012
Slide 1
Slide 1 of 48
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48

About This Presentation

How to write MFC Application responsible for doing math on 2 float numbers.

Jak napisać aplikację dialogową w MFC by można było dodawać, odejmować, mnożyć czy dzielić liczby rzeczywiste wraz z zadaną precyzją wyniku.


Slide Content

MFC Krok po kroku Aplikacja dialogowa – budowa interfejsu użytkownika Zadania laboratoryjne (czas realizacji: 1 tydzień) Celem ćwiczenia jest poznanie sposobu tworzenia aplikacji windowsowych MFC oraz zasad umieszczania i programowania podstawowych kontrolek w oknie dialogowym. Uruchomić program, który w zależności od wyboru: doda, odejmie, pomnoży lub podzieli dwie liczby. W tym celu należy wykonać poniższe kroki. Tekst: Prof. Jerzy Kisilewicz Obrazki: Brian Bartkowiak, student

1. Wybrać z menu File|New|Projects .

a. Wybrać lokalizację, czyli katalog, w którym automatycznie powstanie podkatalog (przestrzeń robocza tworzonego programu -> ang location ). W przestrzeni roboczej będą umieszczone pliki tworzonego programu. b. Wpisać nazwę projektu (będzie to nazwa podkatalogu i równocześnie programu) -> name . c. Z listy projektów wybrać: VisualC ++|MFC|MFC Application. i nacisnąć „OK”.

2. Step1 – Nacisnąć „ Next ”.

Wybrać typ aplikacji „Dialog based ” i nacisnąć klawisz „ Finish ”.

3. Skompilować i uruchomić wybraną aplikację. Wybrać z menu: Build|Build …, a następnie po poprawnej kompilacji uruchomić program wybierając: Debug | Start Without Debugging ... .

Powieli się okno z nazwą programu – zakończyć program naciskając klawisz „OK.” lub „ Cancel ”.

4. Kliknąć napis “TODO: Place dialog controls here .” ( kontrolka „ Static Textt ”) Przesunąć okienko z tym tekstem do górnej krawędzi okna programu. Kliknąć prawym klawiszem na ww . tekst i wybrać „ Properties ”.

W okienku właściwości w linii edycyjnej „ Appearance|Caption ” wpisać inny dowolny tekst. W zakładce „ Align Textt ” można zmienić zmienić położenie tekstu.

5. Z okienka „ Toolbox ” przeciągnąć myszką ikony Aa ( Static Textt ) oraz ab |( EditBox ) na wybrane miejsca obok siebie w okienku programu.

Jak w p. 4 wprowadzić do kontrolki „ Static Textt ” tekst z opisem pierwszej danej, która będzie wprowadzana do linii edycyjnej „Edit Box”. Powtórzyć (dwa razy) czynności z p.5 dla drugiej danej i dla wyniku . Uruchomić program.

6. We właściwościach linii edycyjnej wyniku wybrać zakładkę „ Behavior ” i ustawić opcję „Read- only ” na TRUE.

7. Zdefiniuj obsługę zdarzeń w pierwszej linii edycyjnej. Kliknij jej ikonę prawym klawiszem i wybierz „ Add Event Handler…”.

W okienku „Message type :” podświetl EN_KILLFOCUS (zdarzenie wyjścia myszą z obszaru linii edycyjnej). Naciśnij klawisz „ Add and Edit” i zaakceptuj nazwę funkcji. Pojawi się okno do edycji kodu źródłowego w C ++. ( jeśli IDC_EDIT1 identyfikuje tę linię edycyjną – sprawdzisz to w jej właściwościach).

Wpisz następującą zawartość funkcji obsługi zdarzenia /../

8. Aby wrócić do edycji graficznej w lewym oknie (w zakładce „Res..”) rozwiń drzewo i gałąź „Dialog” oraz wybierz (dwuklik) okno dialogowe programu ( IDE_Nazwa_Projektu_DIALOG ).

Powtórz to samo dla drugiej linii edycyjnej (z identyfikatorem IDC_EDIT2 )

używając zmiennej b w miejsce zmiennej a.

Skompiluj program .

Błędy kompilacji wykazują brak definicji zmiennych: m_Text , a, prec , b.

9. Zdefiniuj ww. zmienne w klasie okna dialogowego. Kliknij prawym klawiszem nazwę klasy okna dialogowego w zakładce „ Clas ..” i wybierz „ Add|MemberVariable ”.

Dodobnie dodaj zmienną prec typu int oraz zmienne a, b typu double .

10. Dodaj zmienną zabezpieczoną ( Protected ) m_Text typu CString do klasy dialogowej. W tym celu przejdź do zakładki Class View . Wykonaj dwuklik na klasę dialogową - przejdziesz do edycji tej funkcji. Po instrukcji double b; dopisz inicjacje zmiennej CString m_Text ;

11. Zmień system kodowania znaków. Przy otwartym projekcie wejdź w Project-> Properties

Configuration Properties->General, znajdź pole Character Set i wybierz Use Multi-Byte Character Set.

12. Klikinij na klasę dialogowa. W poniżej ukażą się funkcje tej kasy. Wykonaj dwuklik na funkcji „ OnInitDialog ()”

– przejdziesz do edycji tej funkcji. Przed instrukcją return TRUE ; dopisz inicjację zmiennej prec – dopisz instrukcję prec =3;.

Skompiluj i uruchom program. Spróbuj wpisywać dane.

13. W podobny sposób zainicjuj zmienne a i b oraz linie edycyjne wpisując do funkcji „ OnInitDialog ” instrukcje: /…/

14. Dodaj funkcję obsługi kliknięcia klawisza „OK.”. W edytorze graficznym kliknij ten klawisz prawym klawiszem myszki i wybierz „ Add Event Handler…”.,

a następnie klawisz „ Add and Edit” i zaakceptuj nazwę funkcji.

W edytorze tekstu źródłowego usuń instrukcję OnOK ();

i na jej miejsce wpisz instrukcje: /…/

15. Przetestuj działanie programu.

16. Do okna programu (edycja graficzna) wstaw kontrolkę „ Group Box” i zwiększ jej wymiary .

W obszar kontrolki wstaw jeden pod drugim 4 przyciski „Radio Button”.

Zaznacz te przyciski i kliknij prawym klawiszem myszki, a następnie wyrównaj położenie przycisków wybierając „ Align Left Edges ”.

17. Podobnie jak w p. 4 zaopatrz przyciski w teksty; „Dodaj”, „Odejmij”, „Pomnóż” i „ Podziel”.

W oknie właściwości pierwszego przycisku („Dodaj”) zaznacz opcję „ Group ” -> TRUE

Dla tego przycisku stwórz zmienną m_zadanie typu int – klikając go prawym klawiszem i wybierając „ Add Variable …”.

W „ Add Member Variable Wizard ” zmień „ Category ” na „Value”. Następnie ustaw „ Variable Type ” na typ całkowity „ int ”. nadaj nazwę zmiennej w okienku „ Variable Name ” i naciśnij „OK”.

18. W konstruktorze klasy okna dialogowego sprawdź wartość początkową zmiennej m_zadanie . Jeżeli wartość będzie różna od 0, zmień ją na „0”. Następnie sprawdź działanie programu.

19. Zmodyfikuj działanie funkcji obsługi naciśnięcia klawisza OK. tak, aby wynik zależał od wartości zmiennej m_zadanie (po wykonaniu funkcji UpdateData (), aktualizowane są wartości zmiennych stowarzyszonych z przyciskami i zmienna m_zadanie otrzymuje wartości : 0 – dodawanie, 1 – odejmowanie, 2 – mnożenie i 3 – dzielenie).

20. Umieść w oknie dialogowym tekst statyczny i linię edycyjną do wprowadzenia wymaganej liczby cyfr ułamkowych – precyzji.

Napisz funkcję obsługi tej kontrolki „Edit Control ”, aby wprowadzoną liczbę całkowitą podstawiać do zmiennej prec zdefiniowanej w klasie okna dialogowego.

21*. Działający program! (przypisek: Brian Bartkowiak)