IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> IsScrollBarEnabled, как реализовать
TarasBer
сообщение 23.12.2011 11:45
Сообщение #1


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


GetScrollInfo не помогает.

Ну и ещё доп.вопрос - как сделать так, чтобы не обрабатывать руками всякую ерунду типа "на сообщение о сдвиге вниз надо сдвинуться вниз"?

И почему иногда GetScrollInfo возвращает ЛОЖЬ, хотя GetLastError возвращает ноль?
Почему если задать nMax<nMin, то полоса прокрутки тупо исчезает, при этом при ближайшем GetScrollInfo оказывется, что nMin=0; nMax=100?

Почему винапи такое го


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
IUnknown
сообщение 23.12.2011 13:53
Сообщение #2


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

Репутация: -  627  +


Цитата
GetScrollInfo не помогает.
Более глючной функции, наверное, во всем API не сыскать. Разве что GetScrollBarInfo, которая тоже то работает, то нет. Были нарекания на неправильную работу этих функций при выключенных стилях (в смысле, работало нормально при Classic View, при любом другом начинало глючить, но это вроде лечилось установкой поля cbSize в SizeOf(SCROLLINFO)). Есть информация что на 64-битных ОС оно вообще не работает...

Вообще, в теории, если скроллбара нет, GetScrollInfo должна вернуть False, а немедленный вызов GetLastError должен вернуть ERROR_NO_SCROLLBARS. Можно также проверить видимость полос прокрутки, получая стиль окна через GetWindowLongPtr (Handle, GWL_STYLE), и потом проверяя, установлены ли биты WS_HSCROLL/WS_VSCROLL, но это опять же только теория, я просто знаю о существовании такого метода, работает он стабильно или нет - без понятия. Попробуй...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 27.12.2011 9:15
Сообщение #3


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


В общем, я решил тупо в памяти окна хранить нужную информацию о полосе прокрутки, всё равно винда не может нормально об этом сказать.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 29.03.2024 17:42
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"