Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
74
3.pierwSzeokno
Rysunek3.3.SchematprzykładowegomenuprogramuutworzonegozwxWidgets.Naszczyciehierarchiiznajduje
siępasekwxMenuBar.KolejneelementytworzonezobiektówwxMenuiwxMenuItem
NapoczątekzadeklarujwszystkieskładnikimenuwdefinicjiklasyMyFrame.Możesztozrobić
tużpoddeklaracjąpaskastanu.Powinnotowyglądaćmniejwięcejtak:
wxMenuBar*mb;
wxMenu*mFile;
wxMenu*mHelp;
wxMenuItem*mShowDateTime;
wxMenuItem*mShowSystemVersion;
wxMenuItem*mClose;
wxMenuItem*mAboutProgram;
Pierwszalinijkazawieradeklaracjępaskamenu(tj.obiektuklasywxMenuBar),kolejnezaśto
pozycjePlikiPomoc(obiektywxMenu),atakżezgrupowanerazemposzczególnepozycjeobumenu
(obiektywxMenuItem).
PrzejdźterazdodefinicjikonstruktoraMyFrame,gdziezrealizujemynaszpasekmenu,azrobimy
toprzedutworzeniemidołączeniemdooknapaskastanu.Najpierwmusiszwpisaćdefinicjeposzcze-
gólnychelementówmenu,czyli:
mb=newwxMenuBar();
mFile=newwxMenu();
mHelp=newwxMenu();
mShowDateTime=newwxMenuItem(NULL,wxID_ANY,wxT("Pokażdatę"),
wxT("Pokazujedatę"),wxITEM_CHECK,NULL);
mShowSystemVersion=newwxMenuItem(NULL,wxID_ANY,wxT("Pokażwersjęsystemu"),
wxT("Pokazujewersjęsystemu"),wxITEM_NORMAL,NULL);
mClose=newwxMenuItem(NULL,wxID_ANY,wxT("Zamknijprogram"),
wxT("Zamykaprogram"),wxITEM_NORMAL,NULL);
mAboutProgram=newwxMenuItem(NULL,wxID_ANY,wxT("Oprogramie"),
wxT("Oprogramie"),wxITEM_NORMAL,NULL);
Wtymmomencieprogramznajużzawartośćmenu,alenieznajeszczejegostruktury.Skupmy
sięchwilęnawpisanymwłaśniekodzie.Zpewnościązauważyłeś,żedomyślnekonstruktoryklas
wxMenuBariwxMenunieprzyjmująwnaszymprzykładzieżadnychargumentów.Oczywiścienie
jesttoregułąiinneformykonstruktorówmożeszpodejrzećwdokumentacjibiblioteki,jednakjest
topraktykanajczęściejstosowana.Konsekwencjątegojestprzejrzystośćopisywaniastrukturymenu,
czymzajmiemysięzachwilę.
Najważniejszymielementamimenuopcjeinicjująceróżneakcje,toznaczytakie,doktórych
możeszprzypisaćkonkretnezdarzeniawprogramie.Wszystkieonereprezentowaneprzezobiekty
klasywxMenuItem,którejkonstruktorwyglądatak: