Функция SetScrollPos (winuser.h)
Функция SetScrollPos задает положение поля прокрутки (большого пальца) на указанной полосе прокрутки и при необходимости перерисовывает полосу прокрутки, чтобы отразить новое положение поля прокрутки.
Синтаксис
int SetScrollPos(
[in] HWND hWnd,
[in] int nBar,
[in] int nPos,
[in] BOOL bRedraw
);
Параметры
[in] hWnd
Тип: HWND
Обработка элемента управления полосой прокрутки или окна со стандартной полосой прокрутки в зависимости от значения параметра nBar .
[in] nBar
Тип: int
Указывает полосу прокрутки для задания. Этот параметр может принимать одно из указанных ниже значений.
[in] nPos
Тип: int
Указывает новое положение поля прокрутки. Позиция должна находиться в диапазоне прокрутки. Дополнительные сведения о диапазоне прокрутки см. в разделе Функция SetScrollRange .
[in] bRedraw
Тип: BOOL
Указывает, будет ли полоса прокрутки перерисовываться в соответствии с новой позицией поля прокрутки. Если этот параметр имеет значение TRUE, полоса прокрутки будет перерисовывана. Если имеет значение FALSE, полоса прокрутки не перерисовка.
Возвращаемое значение
Тип: int
Если функция выполнена успешно, возвращаемое значение — это предыдущая позиция поля прокрутки.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Если полоса прокрутки перерисовывается при последующем вызове другой функции, полезно задать для параметра bRedrawзначение FALSE .
Поскольку сообщения, указывающие положение полосы прокрутки, WM_HSCROLL и WM_VSCROLL, ограничены 16 битами данных о положении, приложения, которые используют только эти сообщения для данных о положении, имеют максимальное значение 65 535 для параметра nPos функции SetScrollPos.
Однако поскольку функции SetScrollInfo, SetScrollPos, SetScrollRange, GetScrollInfo, GetScrollPos и GetScrollRange поддерживают 32-разрядные данные о положении полосы прокрутки, существует способ обойти 16-разрядный барьер WM_HSCROLL и WM_VSCROLL сообщений. Описание метода см. в разделе GetScrollInfo .
Если параметр nBar SB_CTL, а окно, указанное параметром hWnd , не является системным элементом управления полосой прокрутки, система отправляет в окно сообщение SBM_SETPOS для задания сведений о полосе прокрутки. Это позволяет SetScrollPos работать с пользовательским элементом управления, который имитирует полосу прокрутки. Если окно не обрабатывает сообщение SBM_SETPOS , функция SetScrollPos завершается ошибкой.
Требования
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | winuser.h (включая Windows.h) |
Библиотека | User32.lib |
DLL | User32.dll |
Набор API | ext-ms-win-ntuser-misc-l1-2-0 (представлено в Windows 8.1) |
См. также раздел
Справочные материалы