Поделиться через


Функция SetScrollRange (winuser.h)

Функция SetScrollRange задает минимальную и максимальную позиции поля прокрутки для указанной полосы прокрутки.

Примечание Функция SetScrollRange предоставляется для обеспечения обратной совместимости. Новые приложения должны использовать функцию SetScrollInfo .
 

Синтаксис

BOOL SetScrollRange(
  [in] HWND hWnd,
  [in] int  nBar,
  [in] int  nMinPos,
  [in] int  nMaxPos,
  [in] BOOL bRedraw
);

Параметры

[in] hWnd

Тип: HWND

Обработка элемента управления полосой прокрутки или окна со стандартной полосой прокрутки в зависимости от значения параметра nBar .

[in] nBar

Тип: int

Указывает полосу прокрутки для задания. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
SB_CTL
Задает диапазон элемента управления полосой прокрутки. Параметр hwnd должен быть дескриптором для элемента управления полосой прокрутки.
SB_HORZ
Задает диапазон стандартной горизонтальной полосы прокрутки окна.
SB_VERT
Задает диапазон стандартной вертикальной полосы прокрутки окна.

[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)

См. также раздел

GetScrollInfo

GetScrollPos

GetScrollRange

Справочные материалы

SetScrollInfo

SetScrollPos

ShowScrollBar