Krzysztof Mossakowski
Materiały dla studentów
 

Widok skrolowany
(klasa CScrollView)

MFC
Spis treści

Widok skrolowany
klasa CScrollView
Informacje ogólne
Najczęstszy sposób wykorzystania
Hierarchia klas

  •  Informacje ogólne

    • Widok skrolowany wzbogaca widok o możliwość automatycznej obsługi skrolowania

      • jest alternatywą dlą obsługi skrolowania widoku przy pomocy metod CView::OnHScroll i CView::OnVScroll

    • Skrolowany widok jest w MFC obsługiwany przez klasę CScrollView, która jest pochodną klasy CView

    • Zalety wykorzystania klasy CScrollView:

      • zarządza rozmiarami okna i viewport

      • zarządza trybami mapowania współrzędnych

      • automatycznie skroluje w odpowiedzi na komunikaty scroll bars

      • automatycznie skroluje w odpowiedzi na komunikaty klawiatury oraz IntelliMouse wheel

[początek strony]

  •  Najczęstszy sposób wykorzystania

    • Ustawienie parametrów skrolowanego widoku przy użyciu CScrollView::SetScrollSizes

      • zwykle ta metoda jest wywoływana z CView::OnInitialUpdate i/lub CView::OnUpdate

      • możliwa jest zmiana następujących ustawień:
        - trybu mapowania współrzędnych
        - całkowitego rozmiaru widoku (we współrzędnych logicznych)
        - wielkości skrolowania (we współrzędnych logicznych), domyślnie strona to 1/10 wielkości widoku, a linia to 1/10 wielkości strony

    • Klasa CScrollView daje także mechanizm umożliwiający automatyczne skalowanie widoku do rozmiaru okna, w którym widok jest umieszczony

      • przy wykorzystaniu tego mechanizmu nie pojawiają się scroll bars, a obszar roboczy jest całkowicie wypełniony przeskalowanym widokiem

      • włączenie tego mechanizmy następuje po wywołaniu metody CScrollView::SetScaleToFitSize

      • nie można jednocześnie używać CScrollView::SetScaleToFitSize i CScrollView::SetScrollSizes

    • CScrollView automatycznie dopasowuje viewport ustawiany na kontekście urządzenia (device context) do aktualnych swoich ustawień

      • to dopasowanie ma miejsce w metodzie CScrollView::OnPrepareDC

      • CScrollView::OnPrepareDC jest automatycznie wywoływana dla kontekstu CPaintDC wykorzystywanego przy obsłudze komunikatu WM_PAINT

      • jeśli zachodzi potrzeba wywołania CScrollView::OnDraw dla innego kontekstu niż CPaintDC, należy wówczas samemu wywołać CScrollView::OnPrepareDC

      • metoda CScrollView::OnPrepareDC jest właściwym miejscem na zmianę niektórych ustawień kontekstu, ale nie należy zmieniać skalowania

[początek strony]

 

  •  Hierarchia klas

    CObject - informacja w trakcie wykonywania, dynamiczne tworzenie, serializacja
        CCmdTarget - obsługa komunikatów Windows
            CWnd - okno
                CView - widok
                    CScrollView

[początek strony]