Операционная система Microsoft Windows 3.1 для программиста -том 2

Управление полосой просмотра


Для установки ползунка в заданную позицию следует использовать функцию SetScrollPos:

int WINAPI SetScrollPos(HWND hwnd, int fnBar, int nPos, BOOL fRepaint);

Параметры hwnd и fnBar определяют, соответственно, идентификатор окна или органа управления и тип полосы просмотра.

Параметр nPos определяет новое положение ползунка. Значение этого параметра должно находиться в пределах установленного диапазона.

Параметр fRepaint определяет, нужно ли перерисовывать полосу просмотра после установки новой позиции. Если указано TRUE, полоса будет перерисована, если FALSE - нет.

Функция SetScrollPos возвращает значение предыдущей позиции или 0 в случае ошибки.

Для определения текущей позиции надо вызвать функцию GetScrollPos:

int WINAPI GetScrollPos(HWND hwnd, int fnBar);

Параметры этой функции определяют, соответственно, идентификатор окна или органа управления и тип полосы просмотра

Функция возвращает текущую позицию или 0, если идентификатор окна указан неправильно или окно не имеет полосы просмотра.

Иногда бывает нужно убрать из окна одну или обе полосы просмотра. Это нужно, например, в тех случаях, когда, например, после изменения размера окна документ поместился в нем целиком. С помощью функции ShowScrollBar вы можете скрывать или показывать полосы просмотра:

void WINAPI ShowScrollBar(HWND hwnd, int fnBar, BOOL fShow);

Параметр hwnd определяет идентификатор окна, имеющего полосу просмотра, или идентификатор полосы просмотра, созданного как орган управления.



Параметр fnBar определяет тип полосы просмотра, для которой выполняется установка диапазона изменения значений позиции. Кроме описанных нами ранее констант SB_CTL, SB_HORZ и SB_VERT вы можете использовать константу SB_BOTH. Эта константа предназначена для работы сразу с обеими полосами просмотра, определенными в стиле окна.

Параметр fShow определяет действие, выполняемое функцией. Если этот параметр равен TRUE, полоса просмотра (или обе полосы просмотра, если указано SB_BOTH) появляются в окне. Если же указать значение FALSE, полоса просмотра исчезнет.


Программный интерфейс операционной системы Windows версии 3.1 имеет в своем составе функцию EnableScrollBar, позволяющую разрешать или запрещать работу полосы просмотра:

BOOL WINAPI EnableScrollBar(HWND hwnd, int fnBar, UINT fuArrowFlag);

Первые два парамера этой функции аналогичны параметрам функции ShowScrollBar.

Параметр fuArrowFlag определяет, какие из кнопок полосы просмотра должны быть заблокированы или разблокированы:

Значение Описание
ESB_ENABLE_BOTH Обе кнопки полосы просмотра разблокированы
ESB_DISABLE_BOTH Обе кнопки полосы просмотра заблокированы
ESB_DISABLE_LEFT, ESB_DISABLE_UP, ESB_DISABLE_LTUP Заблокирована левая кнопка горизонтальной полосы просмотра или верхняя кнопка вертикальной полосы просмотра
ESB_DISABLE_RIGHT, ESB_DISABLE_DOWN, ESB_DISABLE_RTDN Заблокирована правая кнопка горизонтальной полосы просмотра или нижняя кнопка вертикальной полосы просмотра
Функция возвращает значение TRUE при успешном завершении или FALSE при ошибке (если, например, кнопки уже находятся в требуемом состоянии).


Содержание раздела