Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
70
3.pierwSzeokno
:wxFrame(parent,id,title,pos,size,style)
{
CreateStatusBar(2,wxSB_FLAT);
SetStatusText(title,0);
SetStatusText("abc",1);
CenterOnScreen();
}
NajczęściejużywanymiargumentamifunkcjiCreateStatusBar()liczbapólpaskastanuoraz
jegostyl.Wpowyższymprzykładzieutworzyliśmypasekstanuzawierającydwapolajednakowej
szerokościimającystylwxSB–FLATnadającypaskowiładnypłaskiwyglądwstarszychwersjach
systemówoperacyjnychMSWindows.
Wzwiązkuztym,żepustypasekstanujestzupełniebezużyteczny,zapomocąfunkcjiSetSta-
tusText()umieściliśmywnimjakieśinformacjetekstowe.Pierwszepolepaskawyświetlitytułpobrany
zezmiennejtitlekonstruktoranaszegookna,natomiastwdrugimpolupowinienzostaćwyświetlony
zadanyprzeznastekst,czyliabc.Zpewnościązauważyłeś,żeoprócztekstu,którymazostaćwyświe-
tlonywpaskustanu,funkcjaSetStatusText()pobieradrugiargument,będącyindeksempolapaska
stanu.Pola,niezależnieodichliczby,zawszeindeksowaneod0.
Rysunek3.2.Pasekstanuzwyklesłużydowyświetlaniaróżnychkomunikatówzwiązanychzestanemprogramu.Na
rysunkachpasekstanuwsystemieUbuntuLinux(ugóry)iwsystemieMSWindows(udołu)
PodobnedziałaniedofunkcjiSetStatusText()maparafunkcjiPushStatusText()iPopStatusText().
Pierwszaznich,identyczniejakSetStatusText(),pobieradwaargumentybędąceodpowiedniotek-
stemdowyświetleniaiindeksempolapaskastanu,jednakoprócztego,żewyświetlaonatekstwe
wskazanympolu,zapisujeteżbieżącyciągznakównaspecjalnymstosieprzypisanymdodanego
pola.WywołaniefunkcjiPopStatusText()zjednymargumentembędącymindeksempolausuwatekst
wstawionyfunkcjąPushStatusText()orazprzywracatekstzapisanynastosie.
Projektującswojeprzyszłeprogramy,pamiętaj,żepierwszepolepaskastanujestzwyklezarezer-
wowanedlaautomatycznychkomunikatówsystemupomocy,wyświetlanychnaprzykładpodczaseks-
ploracjipozycjimenuprogramu.Więcejnatentematmożeszdowiedziećsięwdalszejczęściksiążki.
3.3.2.
Więcejopcjipaskastanu
Wpoprzednimpunkciedowiedziałeśsię,żefunkcjaCreateStatusBar()tworzynieskomplikowany
pasekstanumogącyzawieraćdowolnąliczbępóljednakowejszerokości.Pasekstanuutworzony
wtensposóbmożetakżemiećwyglądokreślonyprzezflagistylu.ZapomocąfunkcjiSetStatusText()
wyświetliliśmywpaskunarzędziróżneinformacje.Jednaktoniewszystko.
3.3.2.1.
Modyfikacjarozmiarówpólpaskastanu
Paskistanurozbudowanychaplikacjizawierajązwyklewielepólodgrywającychróżnerole.Pierwszą
ichcechą,jakarzucasięwoczy,różnerozmiarypólitonimiterazsięzajmiemy.
Modyfikacjarozmiarówpólpaskastanuwymagauzyskaniadostępudojegoobiektu,musimy
zatemwjakiśsposóbzdobyćdoniegowskaźnik.Istniejątrzymożliwościwykonaniatakiejoperacji:
przypisaniewskaźnikazwracanegoprzezCreateStatusBar()doinnegowskaźnika;
uzyskaniebezpośredniegodostępudowskaźnikazapomocąfunkcjiGetStatusBar();
samodzielne,ręczneutworzeniepaskastanu(tąmożliwością,zuwaginajejzaawansowany
charakter,zajmiemysięwdalszejczęści).