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.
Size: 10.42 MB
Language: none
Added: May 19, 2012
Slides: 48 pages
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)