Visual C++. Описание стандартных классов - OnHScroll
ОГЛАВЛЕНИЕ
Страница 216 из 238
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. Данный указатель может быть временным и не должен сохраняться для дальнейшего использования.