Параметр wParam
сообщения WM_VSCROLL
имеет значение SB_TOP
, SB_BOTTOM
, SB_PAGEUP
, SB_PAGEDOWN
, SB_LINEUP
, SB_LINEDOWN
, SB_THUMBPOSITION
или SB_THUMBTRACK
, где имена должны объясниться.
SB_TOP
и SB_BOTTOM
означает, что окно прокрутки должно идти вверх или вниз соответственно. Эти сообщения можно отправить, щелкнув правой кнопкой мыши вертикальную полосу прокрутки и выбрав «Вверх» и «Вниз». (Смотрите в Windows Notepad, Win XP +, например.)
SB_PAGEUP
и SB_PAGEDOWN
означает страницу (экран) вверх или вниз. Они отправляются, если вы щелкнете где-нибудь на полосе прокрутки рядом с большим пальцем или стрелками вверх или вниз, или если вы используете контекстное меню полосы прокрутки.
SB_LINEUP
и SB_LINEDOWN
отправляются, когда пользователь нажимает кнопки вверх и вниз на полосе прокрутки или выбирает соответствующие команды меню, вызываемые правой кнопкой мыши.
SB_THUMBTRACK
отправляется непрерывно, когда пользователь выполняет прокрутку с помощью большого пальца полосы прокрутки.
SB_THUMBPOSITION
отправляется, когда пользователь отпустил большой палец.
См. Статью MSDN WM_VSCROLL для получения дополнительной информации.
Итак, когда вы получаете сообщение WM_VSCROLL, вам сначала нужно выполнить саму прокрутку. Например, если вы пишете текстовый редактор, вам нужно перерисовать текст, но с другой строкой в верхней части окна. Затем вам нужно обновить полосу прокрутки до ее новой позиции, предпочтительно с помощью SetScrollInfo, но вы также можете использовать старую функцию SetScrollPos.