Страница: 1 |
Есть TreeView с вертикальным скролл-баром. При нажатии на кнопки этого скролл-бара дерево прокручивается на одну "линию" - т.е. на высоту одного своего элемента (узла). То же можно сказать и о других контролах - о ListBox'е и т.д. Если я программно прокручиваю дерево, посылая сообщение WM_VSCROLL, то у меня в распоряжении самый маленький шаг - это SB_LINEUP (SB_LINEDOWN), т.е. опять-таки "прокрутка в одну линию". Мне бы хотелось изменить ситуацию и программно прокрутить дерево (или иной контрол, имеющий скролл-бар) с минимально возможным шагом - в 1 пиксель. Однако, я упёрся в то, что не знаю, какое сообщение нужно послать дереву. Да и не совсем я уверен, что задача решится именно с помощью посылки сообщения. Возможно, нужно как-то "поиграться" с API-функциями SetScrollInfo и т.п., - но увы, чё-то у меня этот путь оказался тупиковым (не смог разобраться самостоятельно). Допустим также, что я делаю сабклассинг дерева и перехватываю все сообщения WM_VSCROLL. Ну а дальше что с ними делать?! Тоже не смог разобраться! Так что очень нужна помощь сообщества VBNET!
А ты где-нибудь такое видел? ListBox, тот вообще не разрешает ему поставить любой Height, округляет по высоте столбца... Попробуй через ScrollDC Разумеется. Зато может и на один пиксел. Как и ScrollWindow. А по-другому ListBox не даст. Можно, конечно, прокрутить на несколько пикселов окошко листбокса, а затем провернуть сам контрол... Других методов я не знаю... Что касается сообщений - тут трудно не знать, их не так много на самом деле. У меня получилось плавно скроллить, но последняя строка все равно выскакивала резво. Разве что сделать на одну строку больше и закрыть её каким-нибудь контролом, но это, ИМХО, дурость... Страница: 1 |
Вопрос: Прокрутка контролов программно
Добавлено: 26.03.04 16:39
Автор вопроса: Comanche
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 27.03.04 21:07
Номер ответа: 2
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #2
Добавлено: 30.03.04 11:28
Не только видел, но когда-то и делал. Только код утерян (
Номер ответа: 3
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #3
Добавлено: 30.03.04 17:27
Номер ответа: 4
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #4
Добавлено: 30.03.04 17:57
ScrollDC "крутит" только картинку, - но не содержимое контрола!
Номер ответа: 5
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #5
Добавлено: 31.03.04 12:12