IsScrollBarEnabled, как реализовать |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
IsScrollBarEnabled, как реализовать |
TarasBer |
23.12.2011 11:45
Сообщение
#1
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
GetScrollInfo не помогает.
Ну и ещё доп.вопрос - как сделать так, чтобы не обрабатывать руками всякую ерунду типа "на сообщение о сдвиге вниз надо сдвинуться вниз"? И почему иногда GetScrollInfo возвращает ЛОЖЬ, хотя GetLastError возвращает ноль? Почему если задать nMax<nMin, то полоса прокрутки тупо исчезает, при этом при ближайшем GetScrollInfo оказывется, что nMin=0; nMax=100? -------------------- |
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, но это опять же только теория, я просто знаю о существовании такого метода, работает он стабильно или нет - без понятия. Попробуй... |
TarasBer |
27.12.2011 9:15
Сообщение
#3
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
В общем, я решил тупо в памяти окна хранить нужную информацию о полосе прокрутки, всё равно винда не может нормально об этом сказать.
-------------------- |
Текстовая версия | 28.04.2024 5:41 |