Przewiń skrzynki zaciskowej i przewijanie zakresu

Pozycja pola przewijania jest reprezentowana jako integer; jest względem lewej lub górnej końca paska przewijania, w zależności od tego, czy pasek przewijania jest poziomej lub pionowej. Pozycja musi mieścić się minimalne i maksymalne wartości zakresu przewijania. Na przykład pasek przewijania z zakresu od 0 do 100, stanowisko 50 jest w środku, z pozostałych pozycji rozdzielona równomiernie wzdłuż paska przewijania. Początkowy zakres zależy od paska przewijania. Paski przewijania standardowe mają początkowego zakresu od 0 do 100; formanty pasek przewijania mają zakres pusty (minimalne i maksymalne wartości są zera), chyba że dostarczyć zakresu jawne, gdy formant nie zostanie utworzony. Zakres można zmienić w dowolnym momencie. Można użyć funkcji SetScrollInfo , aby ustawić wartości zakresu i funkcji GetScrollInfo do pobierania bieżącej wartości zakresu.

Aplikacja zazwyczaj pozwala dopasować zakres przewijania do wygodne liczb całkowitych, dzięki czemu jest łatwy do tłumaczenia pozycja pola przewijania na wartość odpowiadającą obiekt danych, aby być przewijane. Na przykład jeżeli aplikacji musi wyświetlić 260 wiersze pliku tekstowego w oknie, w którym można wyświetlać tylko 16 wierszy naraz, zakres paska przewijania pionowego można ustawić na 1 poprzez 244. Jeśli pole przewijania jest w pozycji 1, pierwszy wiersz będzie się w górnej części okna. Jeśli pole przewijania jest w położeniu 244, ostatni wiersz (linia 260) będzie w dolnej części okna. Jeżeli aplikacja próbuje określić wartość pozycji, która jest mniejsza niż minimalna lub więcej niż maksimum, minimalnej lub maksymalnej przewijania wartość zakresu jest używana zamiast.

Można ustawić rozmiar strony paska przewijania. Rozmiar strony reprezentuje liczbę jednostek danych, które może się zmieścić w obszarze klienta okna właściciela, biorąc pod uwagę jego bieżący rozmiar. Na przykład jeśli obszaru klienckiego może pomieścić 16 wierszy tekstu, aplikacja będzie ustawił rozmiar strony, 16. System używa rozmiar strony, wraz z przewijania zakres i długości wału przewijania, aby ustawić rozmiar pola przewijania. Gdy zmieniany jest rozmiar okna zawierającego pasek przewijania aplikacja powinna wywołać funkcję SetScrollInfo , aby ustawić rozmiar strony. Aplikacja może pobrać bieżący rozmiar strony, wywołując funkcję GetScrollInfo wysyłającego.

Aby ustanowić relację przydatne między zakres paska przewijania i obiektu danych, aplikacji musi dostosować zakres, zawsze, gdy rozmiar danych obiektu zmiany.

Jako użytkownik przenosi pola przewijania na pasku przewijania, pasek przewijania raporty pozycja pola przewijania jako liczba całkowita z zakresu przewijania. Jeśli pozycja jest wartość minimalna, pole przewijania jest na górze pionowego paska przewijania lub w lewym końcu paska przewijania poziomego. Jeśli pozycja jest wartością maksymalną, pole przewijania jest na dole pionowego paska przewijania lub na prawym końcu paska przewijania poziomego.

Maksymalna wartość paska przewijania można raportu (czyli maksymalnie przewijanie stanowisko) zależy od rozmiaru strony. Jeśli pasek przewijania jest większy niż rozmiar strony, maksymalnie przewijanie stanowisko jest mniejsza niż wartość maksymalny zasięg. Można użyć następującej formuły do obliczania maksymalnej przewijanie stanowisko:

MaxScrollPos = MaxRangeValue-(PageSize - 1) 

 

Aplikacja musi przesunąć pola przewijania na pasku przewijania. Chociaż użytkownik zażąda przewijania na pasku przewijania, pasek przewijania są aktualizowane automatycznie pozycja pola przewijania. Zamiast tego przekazuje wniosek do okna nadrzędnego, który musi przewijać danych i zaktualizować pozycja pola przewijania. Aplikacja używa funkcji SetScrollInfo w celu aktualizacji pozycja pola przewijania; w przeciwnym razie używa funkcji SetScrollPos . Ponieważ kontroluje przemieszczanie pole przewijania, aplikacji można przenieść pole przewijania w przyrostach, które działają najlepiej danych są przewijane.

Index