Функция SetScrollRange (winuser.h)
Функция SetScrollRange задает минимальную и максимальную позиции поля прокрутки для указанной полосы прокрутки.
Синтаксис
BOOL SetScrollRange(
[in] HWND hWnd,
[in] int nBar,
[in] int nMinPos,
[in] int nMaxPos,
[in] BOOL bRedraw
);
Параметры
[in] hWnd
Тип: HWND
Обработка элемента управления полосой прокрутки или окна со стандартной полосой прокрутки в зависимости от значения параметра nBar .
[in] nBar
Тип: int
Указывает полосу прокрутки для задания. Этот параметр может принимать одно из указанных ниже значений.
[in] nMinPos
Тип: int
Указывает минимальную позицию прокрутки.
[in] nMaxPos
Тип: int
Указывает максимальную позицию прокрутки.
[in] bRedraw
Тип: BOOL
Указывает, следует ли перерисовывать полосу прокрутки в соответствии с изменением. Если этот параметр имеет значение TRUE, полоса прокрутки перерисовывается. Если имеет значение FALSE, полоса прокрутки не перерисовка не выполняется.
Возвращаемое значение
Тип: BOOL
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
С помощью SetScrollRange можно скрыть полосу прокрутки, задав для nMinPos и nMaxPos одинаковое значение. Приложение не должно вызывать функцию SetScrollRange , чтобы скрыть полосу прокрутки при обработке сообщения полосы прокрутки. Новые приложения должны использовать функцию ShowScrollBar для скрытия полосы прокрутки.
Если вызов SetScrollRange сразу же следует за вызовом функции SetScrollPos , параметр bRedraw в SetScrollPos должен быть равен нулю, чтобы полоса прокрутки не отображалась дважды.
Диапазон по умолчанию для стандартной полосы прокрутки — от 0 до 100. Диапазон по умолчанию для элемента управления полосой прокрутки пуст (значения параметров nMinPos и nMaxPos равны нулю). Разница между значениями, заданными параметрами nMinPos и nMaxPos, не должна быть больше значения MAXLONG.
Так как сообщения, указывающие положение полосы прокрутки, WM_HSCROLL и WM_VSCROLL, ограничены 16 битами данных о положении, приложения, которые используют только эти сообщения для данных о положении, имеют максимальное значение 65 535 для параметра nMaxPos функции SetScrollRange.
Однако поскольку функции SetScrollInfo, SetScrollPos, SetScrollRange, GetScrollInfo, GetScrollPos и GetScrollRange поддерживают 32-разрядные данные о положении полосы прокрутки, существует способ обойти 16-разрядный барьер WM_HSCROLL и WM_VSCROLL сообщений. Описание метода см. в разделе GetScrollInfo .
Если параметр nBar SB_CTL, а окно, указанное параметром hWnd , не является системным элементом управления полосой прокрутки, система отправляет SBM_SETRANGE сообщение в окно для задания сведений о полосе прокрутки. Это позволяет SetScrollRange работать с пользовательским элементом управления, который имитирует полосу прокрутки. Если окно не обрабатывает сообщение SBM_SETRANGE , функция SetScrollRange завершается ошибкой .
Примеры
Пример см. в разделе Использование формата буфера обмена Owner-Display.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | 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) |
См. также раздел
Справочные материалы