Stronę tą wyświetlono już: 4169 razy
Graficzny interfejs tworzenia szablonów własnych okien dialogowych
Utwórzmy nowy projekt o nazwie PrzeliczanieJednostek, do projektu dodać należy plik wndmain.cpp oraz plik zasobów (w sposób już omawiany wcześniej) poprzez dodanie tylko i wyłącznie jednego elementu Dialog, by oczom naszym ukazał się widok z poniższego rysunku.
Wiele osób zarzuca WinApi brak możliwości ręcznego tworzenia interfejsu programu, nie jest to (jak widać) jednak do końca prawdziwym stwierdzeniem. Podstawowe okienko nie ma zbyt wiele elementów, ot dwa przyciski wewnątrz formy (okienka, w którym znajdują się wszystkie kontrolki). Oczywiście ten stan rzeczy można łatwo zmienić, albowiem okazuje się, że wystarczy wcisnąć kombinację klawiszy Ctrl+Alt+X lub (jak kto woli) wybrać z menu View→Toolbox, aby naszym oczom ukazało się jak za dotknięciem czarodziejskiej różdżki okienko z poniższego rysunku.
Przez grzeczność i szacunek do czytelnika oraz (co tu dużo pisać) szacunek do samego siebie, nie będę tutaj wymieniał i opisywał wszystkich elementów dostępnych na liście okna Toolbox. Jest tych elementów sporo, a jeżeli ktoś chce się nauczyć ich wszystkich to może to zrobić już samodzielnie na własną rękę. Ja postaram się wykorzystać kilka z tych elementów do stworzenia bardzo prostego programu, który będzie przeliczał jednostki długości.
Należy dodać do szablonu okna elementy widoczne na poniższym rysunku, którymi są:
- cztery kontrolki Static text, które będą stanowiły opis poszczególnych kontrolek pod nimi zawartych;
- dwie kontrolki Edit control, które będą odpowiedzialne: jedna za wprowadzanie danych; druga za wyświetlanie wyniku przeliczania;
- dwie kontrolki Combo Box, które będą umożliwiały wybranie jednostek przeliczanych wartości.
Przydałoby się nadać jakieś konkretne nazwy kontrolkom Static text, tak aby opisywały one poprawnie poszczególne kontrolki pod nimi się znajdujące. Czym prędzej więc zaznaczyć należy pierwszą kontrolkę a następnie wcisnąć kombinację klawiszy Alt+Enter lub (jak kto woli) View→Other windows→Properties window, by ukazało się okno Properties. W oknie tym należy zmienić tekst wpisany w polu Caption z Static na Wartość przeliczana:. Dla kolejnej kontrolki należy zmienić to samo pole na Wartość przeliczona:, dla kolejnego pola: Jednostka początkowa: oraz dla ostatniego Jednostka końcowa:. Dodatkowo w obu tych kontrolkach należy zmienić wartość pola Sort z true na false.
Dla elementów typu Edit control warto też zmienić nazwę zawartą w polu ID, dla pierwszego od lewej z ID_EDIT1 na ID_PRZELICZANE, oraz dla drugiego z ID_EDIT2 na ID_PRZELICZONE.
Dla elementów typu Edit Box warto też zmienić nazwę zawartą w polu ID, dla pierwszego od lewej z ID_EDITBOX1 na ID_JEDN_PRZELICZANE, oraz dla drugiego z ID_EDITBOX2 na ID_JEDN_PRZELICZONE.
Na koniec warto jeszcze zaznaczyć samą formę i zmienić jej właściwości w oknie Properties w polu Caption z Dialog na Przeliczanie jednostek długości oraz pole ID z IDD_DIALOG1 na IDD_WINDOW.
Na koniec pozbądźmy się w perfidny sposób przycisku Cancel, który nie będzie nam potrzebny do szczęścia oraz zmieńmy właściwość przycisku OK na Przelicz w polu Caption okna Properties.
Po wszystkich tych zabiegach szablon okna dialogowego powinien wyglądać tak, jak na poniższym rysunku.
Kod programu
Nadszedł najwyższy czas i najwyższa pora, aby napisać kod programu, który omówię kolejno w komentarzach:
Użyte po raz pierwszy w kodzie funkcje
Oto lista funkcji, które zostały użyte po raz pierwszy w kodzie programu:
- GetDlgItem - funkcja umożliwiająca pobranie uchwytu okna potomnego okna dialogowego;
- wcslen - długość tekstu zawartego w zmiennej typu wchar_t*;
- _wtof - funkcja zamienia tekst zawarty w zmiennej typu wchar_t* na liczbę typu double;
- swprintf_s - funkcja zamieniająca a zarazem formatująca zmienną typu double na ciąg znaków wchar_t*;
- EndDialog - kończy działanie okna dialogowego;
- DialogBox - wywołuje okno dialogowe