Есть TreeView с вертикальным скролл-баром. При нажатии на кнопки этого скролл-бара дерево прокручивается на одну "линию" - т.е. на высоту одного своего элемента (узла). То же можно сказать и о других контролах - о ListBox'е и т.д.
Если я программно прокручиваю дерево, посылая сообщение WM_VSCROLL, то у меня в распоряжении самый маленький шаг - это SB_LINEUP (SB_LINEDOWN), т.е. опять-таки "прокрутка в одну линию".
Мне бы хотелось изменить ситуацию и программно прокрутить дерево (или иной контрол, имеющий скролл-бар) с минимально возможным шагом - в 1 пиксель. Однако, я упёрся в то, что не знаю, какое сообщение нужно послать дереву. Да и не совсем я уверен, что задача решится именно с помощью посылки сообщения. Возможно, нужно как-то "поиграться" с API-функциями SetScrollInfo и т.п., - но увы, чё-то у меня этот путь оказался тупиковым (не смог разобраться самостоятельно).
Допустим также, что я делаю сабклассинг дерева и перехватываю все сообщения WM_VSCROLL. Ну а дальше что с ними делать?! Тоже не смог разобраться!