Interfejs okienkowy został zrealizowany w oparciu o bibliotekę MFC (Microsoft Foundation Classes) dostępną w środowisku Visual Studio. Główne okno programu reprezentowane jest przez obiekt klasy CRejRozmow2Dlg, która dziedziczy z klasy CDialog, zdefiniowanej w MFC.
Rozmieszczenie kontrolek (przycisków, suwaków, pól tekstowych itp.) w oknie zostało zdefiniowane przy użyciu edytora okien dialogowych środowiska Visual Studio. Jednocześnie do okna z zakładkami (ang. tab control) został przyporządkowany obiekt tabCtl klasy CTabCtrl, a do suwaków ustawiających parametry AGC – obiekty sl… klasy CSliderCtrl.
Reakcja programu na zmianę stanu kontrolek przez użytkownika odbywa się poprzez wywoływanie odpowiednich funkcji składowych klasy. Są to następujące funkcje:
OnTcnSelchangeTab1 – wywoływana w momencie zmiany zakładki; powoduje wyświetlenie odpowiedniej grupy kontrolek dla danej zakładki,
OnBnClickedButton1 – wywoływana po wciśnięciu klawisza Enter na klawiaturze, przyporządkowana do niewidocznego przycisku OK – powoduje, że przycisk ten staje się aktualnie wybraną kontrolką; wskutek tego po wciśnięciu Enter w czasie edycji tekstu w polu numeru kanału zostaje wywołana funkcja OnEnKillfocusEdit,
OnBnClickedBootBtn – wywoływana po wciśnięciu przycisku „Boot”, omówiona w podrozdziale 8.5,
OnBnClickedDirBtn – wywoływana po wciśnięciu przycisku wyboru katalogu na pliki WAV; powoduje wyświetlenie okna wyboru katalogu,
OnEnKillfocusEdit – wywoływana po zakończeniu edycji w polu numeru kanału (przez wciśnięcie Enter lub wybranie innej kontrolki); zapamiętuje wpisany numer kanału i wywołuje funkcję ChannelChange, ustawiającą suwaki stosownie do parametrów AGC danego kanału,
OnDeltaposSpin – obsługuje przyciski zmniejszania i zwiększania numeru kanału i wywołuje funkcję ChannelChange, ustawiającą suwaki stosownie do parametrów AGC wybranego kanału,
OnNMCustomdrawSl… – grupa funkcji wywoływanych po zmianie położenia suwaków ustawiających parametry AGC; odpowiedzialne za obliczenie i zapamiętanie nowej wartości parametru oraz wywołanie funkcji UpdateNumbers, wyświetlającej liczbowo wartości parametrów pod suwakami,
OnBnClickedAgc, OnBnClickedVad, OnBnClickedHold – wywoływane w reakcji na zmianę stanu przycisków typu CheckBox, pozwalających na włączanie i wyłączanie funkcji algorytmu AGC.
Do inicjalizacji kontrolek służy funkcja OnInitDialog zastępująca funkcję o tej samej nazwie w klasie podstawowej CDialog. Funkcja ta wykonuje również inne zadania inicjalizacyjne nie związane z interfejsem użytkownika, omówione w podrozdziale 8.5. Jest ona wywoływana przez system bezpośrednio po utworzeniu okna programu. Ponadto klasa CRejRozmow2Dlg zawiera inne funkcje, także omówione w podrozdziale 8.5.
Ponieważ podczas pracy programu czasem pojawia się potrzeba przekazania krótkiego komunikatu użytkownikowi, zwłaszcza w przypadku wystąpienia błędów w trakcie działania programu, zostało do tego celu zaprojektowane okienko wraz z przyporządkowaną do niego klasą CErrorDialog. Tworząc obiekt tej klasy, należy podać jako argument konstruktora obiekt typu CString zawierający żądany tekst komunikatu. Zamiast obiektu CString można także podać wskaźnik typu char *, co jest najczęściej wykorzystywane w programie. W celu wyświetlenia okna z komunikatem należy wywołać funkcję DoModal dla uprzednio utworzonego obiektu reprezentującego to okno.
Copyright © 2008-2010 EPrace oraz autorzy prac.