Поделиться через


Класс CScrollView

CView с возможностями прокрутки.

class CScrollView : public CView

Члены

Защищенные конструкторы

Имя

Описание

CScrollView::CScrollView

Создает объект CScrollView.

Открытые методы

Имя

Описание

CScrollView::CheckScrollBars

Указывает, имеет ли представление прокрутки по горизонтали и вертикальные полосы прокрутки.

CScrollView::FillOutsideRect

Заполняет область представления ожидания при необходимости выполняя прокрутку области.

CScrollView::GetDeviceScrollPosition

Возвращает текущую позицию прокрутки в единицах устройства.

CScrollView::GetDeviceScrollSizes

Возвращает текущий режим сопоставления полный размер и линию и размеры страницы прокручиваемые представления. Размер в единицах устройства.

CScrollView::GetScrollPosition

Возвращает текущую позицию прокрутки в логических единицах.

CScrollView::GetTotalSize

Получает общий размер представления прокрутки в логических единицах.

CScrollView::ResizeParentToFit

Приводит к тому, что размер представления продиктовать размер своего кадра.

CScrollView::ScrollToPosition

Прокручивает представление на заданный момент, указанный в логических единицах.

CScrollView::SetScaleToFitSize

Переводит представление прокрутки в режим шкала-к- соответствия.

CScrollView::SetScrollSizes

Устанавливает режим сопоставления представления прокрутки, полный размер, а горизонтальная и вертикальная прокрутка составляющих.

Заметки

Самостоятельно обрабатывать стандартный прокрутку в любом классе, производном от CView путем переопределения сообщение- функции-члены OnHScroll и сопоставленные OnVScroll. Но CScrollView добавляет следующие функции к его возможностей CView:

  • Он управляет размерами окна и окна просмотра и режимы сопоставления.

  • Оно автоматически перемещается в ответ на сообщения полосы прокрутки.

  • Оно автоматически перемещается в ответ на сообщения от клавиатуры, отличных от прокрутки или колесика мыши, IntelliMouse.

Автоматическая прокрутка в ответ на сообщения от клавиатуры, добавить сообщение WM_KEYDOWN и тест для VK_DOWN, VK_PREV и вызова SetScrollPos.

Самостоятельно обрабатывать прокрутку колесика мыши путем переопределения сообщение- функции-члены OnMouseWheel и сопоставленные OnRegisteredMouseWheel. По мере того, как они поддерживают такие функции-члены для CScrollView, предлагаемая расширение функциональности для WM_MOUSEWHEEL сообщение поворота колесика.

Чтобы воспользоваться преимуществами автоматической прокрутки, наследуйте класс от CScrollView представления, а не из CView. Если представление сначала создано, если нужно вычислить размер прокручиваемой представления, основываясь на размер документа, вызовите функцию-член SetScrollSizes из переопределения или CView::OnInitialUpdate или CView::OnUpdate. (Необходимо написать собственный код для запроса размер документа. Пример см. в разделе Образец Scribble).

Вызов к функции-члену SetScrollSizes задает режим сопоставления представления всего измерения представления прокрутки и количество для прокрутки по горизонтали и по вертикали. Все размеры в логических единицах. Логический размер представления обычно вычисляется на основе данных, хранящихся в документе, но в некоторых случаях может потребоваться указать фиксированный размер. Примеры обоих подходов см. в разделе CScrollView::SetScrollSizes.

Указать число для прокрутки по горизонтали и вертикали в логических единицах. По умолчанию если пользователь щелкает base "полоса прокрутки" вне ползунка полосы прокрутки, CScrollView прокручивает "страница". Если пользователь нажимает кнопку прокрутки на любом элементе полосы прокрутки, CScrollView прокручивает "линия". По умолчанию страница 1/10 из полного размера представления; линия 1/10 из размера страницы. Переопределите эти значения по умолчанию, передав пользовательские размеры в функции-члене SetScrollSizes. Например, можно установить размер по горизонтали в некоторой части полного размера, ширины размера и вертикальной линии в текущем высоте шрифта.

Вместо прокрутки, CScrollView может автоматически масштабирование представления с текущим размером окна. В этом режиме представление не содержит полосы прокрутки и логическое представление растянуто или сжато приспособления к получению для клиентской области окна. Использовать эту возможность шкала-к- соответствия, вызов CScrollView::SetScaleToFitSize. (Или SetScaleToFitSize или вызовите SetScrollSizes, но не оба).

Прежде чем вызывать функцию-член OnDraw пользовательского производного класса представления CScrollView автоматически обрабатывает начало координат окна просмотра для объекта устройство- контекста CPaintDC, он передает в OnDraw.

Для обработки начало координат окна просмотра для окна прокрутки, CScrollView переопределяет CView::OnPrepareDC. Эта корректировка автоматическая для контекста устройства CPaintDC, CScrollView передает в OnDraw, но ее следует вызывать CScrollView::OnPrepareDC для всех других контекстов устройства использовании, как CClientDC. Можно переопределить CScrollView::OnPrepareDC для задания пера, цвет фона и другие атрибуты документа, но вызвать базовый класс, чтобы выполнить масштабирование.

Полосы прокрутки могут появляться в 3 размещения по отношению к представлению, как показано в следующих случаях:

  • Стандартные полосы прокрутки окно- стиля можно задать для представления с помощью WS_HSCROLL и WS_VSCROLLстили Windows.

  • Элементы управления "полоса прокрутки" можно также добавлять к кадру, содержащий представление, в этом случае платформа переадресует WM_HSCROLL и сообщения от WM_VSCROLL фреймового окна на активное в данный момент представление.

  • Платформа также переадресуют сообщения прокрутки элемента управления разделителем CSplitterWnd для текущего активного панели splitter (представление). Установленный в CSplitterWnd с общих полосами прокрутки, объект CScrollView будет использовать общие один вместо создания его.

Дополнительные сведения об использовании CScrollView см. в разделе Архитектура документов и представлений и Производный представление классифицирует доступный в MFC.

Иерархия наследования

CObject

CCmdTarget

CWnd

CView

CScrollView

Требования

Заголовок: afxwin.h

См. также

Ссылки

Класс CView

Диаграмма иерархии

Класс CView

Класс CSplitterWnd

Основные понятия

MFC просматривает DIBLOOK