Klasa CScrollView jest widokiem z możliwiściami przesuwania.
Każda klasa dziedzicząca po CView
może obsługiwać przewijanie poporzez pokrycie metod OnHScroll()
i OnVScroll(), lecz klasa CScrollView implementuje dodatkowe
możliwości:
OnMouseWheel() i
OnRegisteredMouseWheel(). Zaimplementowane w klasie CScrollView
metody gwarantują zalecane zachowanie w odpowiedzi na komunikat
WM_MOUSEWHEEL.SetScrollSizes(). Wywołanie tej metody
ustawia odpowiedni tryb mapowania, całkowite rozmiary widoku i zakresy przewijania
poziomego i pionowego. Zakresy przewijania podane są w jednostkach logicznych.
Domyślnie przewinięcie "o stronę" oznacza przewinięcie o 1/10 część długości
dokumentu, a przewinięcie "o linię" to 1/10 część strony. Wielkości te można
zmienić przesyłając odpowiednie informacje metodzie SetScrollSizes().
CSplitterWnd.SetScaleToFitSize() zamiast
używać metody SetScrollSizes().SetScaleToFitSizes() może powodować występowanie
asercji przy pionowym skalowaniu okna do zera. Należy w takim przypadku
w obsłudze metody OnSize()
rozmiar okna cy=0 potraktować jako przypadek szczególny
i zastosować metodę SetScrollSizes(). - przyp. autor).OnDraw() obiekt klasy CScrollView automatycznie
ustawia położenie i rozmiar okna widocznego na ekranie i przekazuje
odpowiednio utworzony obiekt CPaintDC do metody
OnDraw(). Aby wzbogacić automatycznie generowane wartości
np. o atrybuty piórka, tła itp. należy pokryć metodę OnPrepareDC().
Należy jednak zawsze pamiętać o wywołaniu standardowej metody w celu
wykonania skalowania. Należy również pamiętać o każdorazowym wywoływaniu
metody OnPrepareDC() dla kontekstów innych niż przekazywany
automatycznie do metody OnDraw().
Konstruowanie
| Metody | Opis |
|---|---|
| CScrollView | Tworzy obiekt typu CScrollView. |
| Metody | Opis |
|---|---|
| FillOutsideRect | Wypełnia przestrzeń widoku poza obszarek przesuwania. |
| GetDeviceScrollPosition | Zwraca aktualną pozycję przesunięcia w jednostkach urządzenia. |
| GetDeviceScrollSizes | Zwraca aktualny tryb mapowania, rozmiary, skok przesunięcia i skok o stronę (w jednostkach urządzenia). |
| GetScrollPosition | Zwraca aktualną pozycję w jednostkach logicznych. |
| GetTotalSize | Zwraca rozmiar widoku w jednostkach logicznych. |
| ResizeParentToFit | Powoduje, iż widok ustawia automatycznie rozmiar okna rodzica. |
| ScrollToPosition | Przewija okno do zadanej pozycji (w jednostkach logicznych). |
| SetScaleToFitSize | Ustawia tryb pracy widoku na automatyczną zmianę rozmiaru przy zmianie rozmiaru okna rodzica. |
| SetScrollSizes | Ustawia tryb mapowania, rozmiary, skok przesunięcia i skok o stronę (w jednostkach urządzenia). |