Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
3.4.paSekmenu
classMyFrame:publicwxFrame
{
public:
MyFrame(wxWindow*parent,wxWindowIDid,constwxString&title,
constwxPoint&pos,constwxSize&size,longstyle);
private:
wxStatusBar*sb;
};
73
WówczastworzeniepaskastanuwobrębiekonstruktoraMyFramemożewyglądaćnastępująco:
MyFrame::MyFrame(wxWindow*parent,wxWindowIDid,constwxString&title,
constwxPoint&pos,constwxSize&size,longstyle)
:wxFrame(parent,id,title,pos,size,style)
{
sb=newwxStatusBar(this);//Utworzeniepaskastanu(rodzicMyFrame)
sb->SetFieldsCount(2);
//Ustawienieliczbypól
this->SetStatusBar(sb);
//Przypisaniepaskastanudookna
SetStatusText(title,0);
CenterOnScreen();
}
Najważniejsząrzeczą,jakapojawiłasięwpowyższymlistingu,jestużyciewirtualnejmetodyvoid
SetStatusBar(wxStatusBar*sb),któraprzypisujenaszpasekdoobiektuMyFrame.Celowoużyłem
tuwskaźnikathis,abyukazaćCizależności,jakiepowstająmiędzyoknemprogramuMyFrameajego
graficznymielementami.
Osposobie,zaletachiwadachużyciafunkcjiCreate()dotworzeniaobiektówkontrolekwx-
Widgetsmożeszprzeczytaćwpoświęconymtemupodrozdziale5.3.
3.4.
Pasekmenu
Użytkowyprogramkomputerowybezpaskamenujestjaksamochódbezkierownicy.Pasekmenu
jestnajbardziejczytelnyminieodłącznymelementemgraficznegointerfejsuużytkownika,umożli-
wiającymdostępdonajwiększejliczbyusystematyzowanychopcji,wjakiejestwyposażonyprogram.
Zaryzykujęnawetstwierdzenie,żemenuprogramujestpierwszyminajważniejszymelementembudu-
jącyminterakcjęmiędzyprogramemajegoużytkownikiem.Wobecniezaprzeczalnieolbrzymiejroli,
jakąodgrywapasekmenuwprogramie,przedstawięCiterazmetodytworzeniagowaplikacjach
pisanychzwxWidgets.
Oczywiściepasekmenuniejestjedynąkonstrukcjątegorodzaju,jakamożewystąpićwprogramie
(innymrodzajemmenujestnp.menukontekstowe),jednakwtejczęściksiążkiskupimysięjedynie
nanim.
3.4.1.
Realizacjapaskamenu
PasekmenujestobiektemklasywxMenuBar.Reprezentujeonobszar,naktórymumieszczone
poszczególnepozycjemenubędąceobiektamiklasywxMenu.Każdemenuzawierazwyklerozwi-
janąlistęróżnychopcji,którezkoleiobiektamitypuwxMenuItem.Każdemenumożezawierać
podmenu.OgólnąstrukturęklaswxWidgetssłużącychdotworzeniamenuprzedstawiarysunek3.3.
SpróbujemyterazutworzyćprostemenudlaTwojegopierwszegoprogramu.Będzieonozawie-
raćdwierozwijanepozycje:PlikorazPomoc.WmenuPlikumieścimypozycjęumożliwiającą
wyświetlenieaktualnejdatywpaskustanu,pozycję,któraspowodujewyświetleniewersjisystemu
operacyjnegownowymokienkuinformacyjnym,atakżestandardowąpozycjęZamknijprogram.
WmenuPomocumieścimynatomiastopcjęumożliwiającąwyświetlenieprostegooknazinforma-
cjamioprogramie.