Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
3.3paSekStanu
69
Oknogłówneniemarodzica,więcpierwszyargumentprzyjmujewartośćNULL.Nieplanujemy
obsługiwaćzdarzeńpochodzącychzokna,więcniepotrzebujeonoidentyfikatora(stąddrugiargu-
mentjestrówny-1,czyliwxID–ANY).Trzeciargument-tytułokna-pochodzizezmiennejglobalnej
appName.Dalejdefiniujemywspółrzędne,rozmiaristyloknawyrażonezapomocąflagokreślających
poszczególnewłaściwościokna.
ZachęcamCiędoeksperymentowania.Spróbujzastosowaćróżnestyleoknaiprzyjrzyjsięich
efektom,przetestujzmianypołożeniaoknaijegorozmiarów,zmodyfikujlistęargumentówkonstruk-
toraidostosujdoswoichpotrzeb.Niebójsięzepsućswojejpracy-zawszemożeszwczytaćprojekt
odpoczątku.Pamiętaj,żenajlepszymnauczycielemjestdoświadczenie.
3.3.
Pasekstanu
Większośćprogramówmaumieszczonywdolnejczęścioknapasekstanuzawierającyzwykleinfor-
macjepomocylubinformacjeostanieróżnychparametrówprogramu,coniejestregułą(np.pasek
stanuedytoratekstuOpenOfceWriterzawieradodatkowenarzędziaumożliwiającezarządzanie
widokiemstrony).Wyposażymyteraznaszprzykładowyprogramwtakipasek.
Wzależnościodfunkcjonalności,jakiejoczekujeszodpaskastanu,możeonzostaćzrealizowany
nakilkasposobów.Zaczniemyodnajłatwiejszego.
3.3.1.
FunkcjaCreateStatusBar()
Najłatwiejszymsposobemwstawieniapaskastanudonaszegoprogramujestużycieprostejfunkcji
CreateStatusBar().UmieśćwdefinicjikonstruktoraMyFrameprzedwywołaniemfunkcjicentru-
jącejoknoprogramunaekraniemonitora(zakładam,żekorzystaszzprojektu,któregoużywaliśmy
wcześniej).
MyFrame::MyFrame(wxWindow*parent,wxWindowIDid,constwxString&title,
constwxPoint&pos,constwxSize&size,longstyle)
:wxFrame(parent,id,title,pos,size,style)
{
CreateStatusBar();//Utworzeniepaskastanu
CenterOnScreen();
}
Poprzebudowaniuprogramupowinieneśotrzymaćoknoprogramuzpaskiemstanuzawierającym
domyślniejednopole.
FunkcjaCreateStatusBar()zwracawskaźnikdoobiektuklasywxStatusBar,któryreprezentuje
pasekstanuwobrębieobiektuMyFrame.Wpowyższymprzykładziefunkcjazostaławywołanabez
argumentów,jednakwrzeczywistościmożeonaprzyjąćcztery,zktórychpierwszetrzy,zgodne
zpodanąkolejnością,domyślniezainicjowanewartościami:
intnumber=1-określaliczbępólpaskastanu;
longstyle=wxSTB_DEFAULT_STYLE-określastylpaska(wtymprzypadkujesttowartość
domyślnabędącasumąbitowązestawuflagdefiniującychstyl;wszystkieonezostałyomówione
wdokumentacjibiblioteki);
wxWindowIDid=0-zawieraidentyfikatoroknapaskastanu.
OstatnimargumentemfunkcjiCreateStatusBar()jestnazwazasobuprzechowywanawpostaci
łańcuchaznakówwxString.
Okazujesię,żetaprostawużyciufunkcjawznakomitejwiększościprzypadkówmożesięstać
narzędziemwpełniwyczerpującympotrzebyprogramisty.Abysięotymprzekonać,zmodyfikujemy
nieconaszpasekstanu.
MyFrame::MyFrame(wxWindow*parent,wxWindowIDid,constwxString&title,
constwxPoint&pos,constwxSize&size,longstyle)