Помощь - Поиск - Пользователи - Календарь
Полная версия: IsScrollBarEnabled
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
TarasBer
GetScrollInfo не помогает.

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

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

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

Вообще, в теории, если скроллбара нет, GetScrollInfo должна вернуть False, а немедленный вызов GetLastError должен вернуть ERROR_NO_SCROLLBARS. Можно также проверить видимость полос прокрутки, получая стиль окна через GetWindowLongPtr (Handle, GWL_STYLE), и потом проверяя, установлены ли биты WS_HSCROLL/WS_VSCROLL, но это опять же только теория, я просто знаю о существовании такого метода, работает он стабильно или нет - без понятия. Попробуй...
TarasBer
В общем, я решил тупо в памяти окна хранить нужную информацию о полосе прокрутки, всё равно винда не может нормально об этом сказать.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.