Visual C++. Описание стандартных классов - OnHScroll

ОГЛАВЛЕНИЕ


OnHScroll

afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);

Аргументы

  • nSBCode - определяет код полосы прокрутки, содержащий запрос пользователя на прокрутку окна. Этот аргумент может принимать одно из следующих значений:
    SB_LEFT - перемещение в крайнюю левую позицию;
    SB_ENDSCROLL - завершение операции прокрутки;
    SB_LINELEFT - перемещение на строку позицию влево;
    SB_LINERIGHT - перемещение на строку позицию вправо;
    SB_PAGELEFT - перемещение на одну страницу влево;
    SB_PAGERIGHT - перемещение на одну страницу вправо;
    SB_RIGHT - перемещение в крайнюю правую позицию;
    SB_THUMBPOSITION - перемещение в указанную позицию. Эта позиция определяется аргументом nPos;
    SB_THUMBTRACK - перемещает бегунок в указанную позицию. Эта позиция определяется аргументом nPos.
  • nPos - определяет положение бегунка полосы прокрутки, если аргумент nSBCode принимает значение SB_THUMBPOSITION или SB_THUMBTRACK. В противном случае данный аргумент не используется. В зависимости от значения диапазона прокрутки данный аргумент, имеющий тип целого числа без знака, может принимать отрицательное значение. Это следует понимать так: в действительности этот аргумент имеет тип целого числа со знаком и только при преобразовании его в этот формат функция будет работать абсолютно надежно, но в силу патологической любви разработчиков фирмы Microsoft к целым числам без знака этот аргумент объявлен как целое число без знака. Поэтому, если вы не уверены, что данная функция будет работать только с положительными границами диапазона, то лучше во всех случаях, перед использованием данного аргумента корректно преобразуйте его к родному типу целого со знаком. Самый большой идиотизм заключается в том, что для этого достаточно присвоить величину, имеющую тип целого числа без знака, величине, имеющей тип целого со знаком, что является нарушением всех правил преобразования типов данных.
  • pScrollBar - если обрабатываемое данной функцией сообщение пришло от полосы прокрутки, данный аргумент содержит указатель на объект класса данного элемента управления. Если пользователь произвел щелчок кнопкой мыши в полосе прокрутки окна, этот параметр имеет значение NULL. Данный указатель может быть временным и не должен сохраняться для дальнейшего использования.

Описание

Данная функция вызывается приложением для обработки сообщений от полосы прокрутки. Аргументы функции OnHScroll соответствуют параметрам, передаваемым приложению в соответствующем сообщении. При вызове в данной функции метода базового класса, ему будут переданы те же параметры, что и данной функции. Все изменения, внесенные в них пользователем, будут при этом игнорироваться. Функция OnHScroll используется для получения и передачи информации в горизонтальную полосу прокрутки окна. Приложение использует данную функцию для реализации обратной связи при перемещении бегунка полосы прокрутки. В этом случае первый аргумент данной функции принимает значение SB_THUMBTRACK. При перемещении содержимого окна, включающего в себя данную полосу прокрутки, приложение должно установить ее бегунок в соответствующее положение. Для этого используется функция SetScrollPos.