Rull boksen posisjon og rulling område

Plasseringen av rulleboksen er representert som et heltall; Det er i forhold til den venstre eller øvre enden av rullefelt, avhengig av om rullefeltet er vannrett eller loddrett. Plasseringen må være innenfor de laveste og høyeste verdiene av rullende området. For eksempel i et rullefelt med en rekke 0 til 100 er posisjon 50 i midten, med de gjenværende plasseringene likt fordelt langs rullefeltet. Det første området, avhenger av rullefeltet. Standard rullefeltene har en innledende området 0 til 100; rullekontrollene bar har en tomt område (både minimum og maksimum-verdiene er null), med mindre du angir en eksplisitt området når kontrollen blir opprettet. Du kan endre området når som helst. Du kan bruke SetScrollInfo -funksjonen til å angi verdier for området, og GetScrollInfo -funksjonen til å hente gjeldende område-verdier.

Et program justerer vanligvis bla området til praktisk heltall, gjør det enkelt å oversette Rull boksen stilling til en verdi som tilsvarer dataobjektet som skal rulles. Hvis et program må vise 260 linjene i en tekstfil i et vindu som kan vise bare 16 linjer om gangen, kan for eksempel loddrette rullefelt bar området settes til 1 gjennom 244. Hvis rulleboksen har plassering 1, blir den første linjen øverst i vinduet. Hvis rulleboksen har plassering 244, blir den siste linjen (linje 260) nederst i vinduet. Hvis et program prøver å angi en verdi som er mindre enn minimum eller mer enn maksimum, brukes minimum eller maksimum rullende Områdeverdien i stedet.

Du kan angi en annen sidestørrelse for et rullefelt. Sidestørrelse representerer antallet dataenheter som får plass i klientområdet for eiervinduet gitt gjeldende størrelse. For eksempel hvis klientområdet kan holde 16 linjer med tekst, ville et program sette sidestørrelsen til 16. Systemet bruker sidestørrelsen, sammen med rullende rekkevidden og lengden på skaftet Rull, for å angi størrelsen på rulleboksen. Når et vindu som inneholder et rullefelt er beskåret, må et program kalle funksjonen SetScrollInfo å sette sidestørrelsen. Et program kan hente gjeldende papirstørrelse ved å kalle funksjonen sender GetScrollInfo .

Du oppretter en nyttig relasjon mellom scroll bar-området og dataobjektet, må et program justere området hver gang størrelsen på dataene objekt endringer.

Når brukeren beveger seg rulleboksen i et rullefelt, rapporterer bla-boksen plasseringen som et heltall i området rullende i rullefeltet. Hvis plasseringen er den laveste verdien, er på toppen av et loddrett rullefelt eller lengst til venstre i et vannrett rullefelt i rulleboksen. Hvis plasseringen er maksimumsverdien, er rulleboksen nederst på et loddrett rullefelt eller helt høyre i et vannrett rullefelt.

Maksimal verdi som et rullefelt kan rapporten (det vil si maksimalt rulling posisjon), er avhengig av sidestørrelsen. Hvis rullefeltet har en større enn en sidestørrelse, er maksimum rulling posisjon mindre enn verdien for maksimal rekkevidde. Du kan bruke følgende formel til å beregne maksimalt rulling posisjon:

MaxScrollPos = MaxRangeValue-(PageSize - 1) 

 

Et program må flytte rulleboksen i et rullefelt. Selv om brukeren sender en forespørsel for rulling i et rullefelt, oppdaterer rullefeltet automatisk ikke Rull boksen posisjon. I stedet, den sender forespørselen til det overordnede vinduet, som må bla gjennom dataene og oppdatere rulleplasseringen for-boksen. Et program bruker SetScrollInfo -funksjonen til å oppdatere boksen rulleplasseringen; Hvis ikke, det bruker funksjonen SetScrollPos . Fordi den styrer rullebevegelsen-boksen, kan programmet flytte rulleboksen i intervaller som fungerer best for dataene blir bladd.

Index