CScrollView

Klasa CScrollView jest CView z przewijania możliwości.

Można obsługiwać, standardowe przewijanie samodzielnie w dowolnej klasy pochodzące z CView nadrzędnym mapowanych na komunikat OnHScroll i OnVScroll Członkowskie funkcje. Ale CScrollView dodaje następujące funkcje jej możliwości CView:

Można obsługiwać kółka przewijania samodzielnie nadrzędnym mapowanych na komunikat OnMouseWheel i OnRegisteredMouseWheel Członkowskie funkcje. Jak CScrollView, te funkcje składowe obsługuje zachowanie zalecane dla WM_MOUSEWHEEL, wiadomości obrót koła.

Aby wykorzystać automatyczne przewijanie, pochodną klasy widoku CScrollView zamiast z CView. Gdy widok po raz pierwszy jest tworzony, jeśli chcemy obliczyć rozmiar przewijalne widok, w oparciu o rozmiar dokumentu, wywołania funkcji członek SetScrollSizes z Twojego zastępowanie CView::OnInitialUpdate lub CView::OnUpdate. (Należy napisać własny kod kwerendy rozmiar dokumentu. Na przykład, zobacz Zwiększenie widoki w Visual C++ samouczki.)

Wywołanie funkcji SetScrollSizes Członkowskie ustawia tryb mapowania widoku, całkowite wymiary widoku przewijania oraz kwoty, aby przewijać w poziomie i w pionie. Wszystkich rozmiarów są w jednostkach logicznych. Logiczne rozmiar widoku zazwyczaj jest obliczana na podstawie danych przechowywanych w dokumencie, ale w niektórych przypadkach, możesz chcieć określić stały rozmiar. Przykłady zarówno podejścia zobacz CScrollView::SetScrollSizes.

Należy określić kwot, które mają przewiń poziomo i pionowo w jednostek logicznych. Domyślnie jeśli użytkownik kliknie wałku pasek przewijania poza pole przewijania, CScrollView przewija "strony". Jeśli użytkownik kliknie przycisk strzałki przewijania na końcu paska przewijania, CScrollView przewija "linii". Domyślnie strona jest 1/10 całkowity rozmiar widoku; Linia jest 1/10 rozmiaru strony. Zastąpić te wartości domyślne, przekazując rozmiarów niestandardowych funkcji członek SetScrollSizes . Na przykład może ustawić rozmiar poziomej do niektórych ułamka szerokości całkowitej wielkości i rozmiar pionowy do wysokości wiersza w bieżącej czcionce.

Zamiast przewijania, CScrollView można automatycznie Skaluj widok bieżący rozmiar okna. W tym trybie Widok ma nie pasków przewijania i logicznym widokiem jest rozciągnięty lub pomniejszony do dokładnie dopasować obszaru okna klienta. Aby skorzystać z tej techniki skali do dopasowania wywołania CScrollView::SetScaleToFitSize. (Wywołanie funkcji SetScaleToFitSize lub SetScrollSizes, ale nie obu.)

Przed OnDraw wywoływana jest funkcja członek klasy pochodnej widoku, CScrollView automatycznie dostosowuje pochodzenia wziernika dla obiektu kontekstu urządzenia CPaintDC , który przechodzi doOnDraw.

Aby dopasować pochodzenia wziernika przewijania okna, CScrollView zastępuje CView::OnPrepareDC. To dopasowanie jest automatyczne kontekstu urządzenia CPaintDC , który CScrollView przekazuje do OnDraw , ale należy wywołać CScrollView::OnPrepareDC sobie w innych kontekstach urządzenia używasz, takich jak CClientDC. Można zastąpić CScrollView::OnPrepareDC pióra, kolor tła oraz inne rysunku atrybuty, ale wywołanie klasy podstawowej do skalowania.

Paski przewijania mogą pojawiać się w trzech miejscach względem widoku, jak pokazano w następujących przypadkach:

Aby uzyskać więcej informacji na temat używania CScrollView, zobacz Widok i dokumentu architektury tematy i Klasy widoku pochodzących w Visual C++ Programmer's Guide.

# include lt;afxwin.h>

Czło&nkowie klasy |nbsp; Klasa podstawowa | Wykres hierarchii

Próbki  Próbki MFC DIBLOOK

Zobacz też CView, CSplitterWnd

Index