Scroll в DBGrid
Не секрет что обычный DBGrid не обрабатывает события прокрутки колесика. Хотелось бы иметь такую возможность для перемещения по записям набора данных. Кстати сам VB я научил воспринимать колесика для прокрутки окна с кодом и т.п. Кому надо, могу ссылку кинуть
Посмотри пример для ListBox: http://sources.codenet.ru/download.php?id=361&cid=25&o=0&my=0
Там самый клинический случай, когда контрол даже не обрабатывает события типа WM_VSCROL, поэтому универсальные дрова работающие по принципу определить окно под курсором мыши послать ему сообщение WM_VSCROL пролетают. Но мы можем взять это на себя, и послать вместо WM_VSCROL что-нибудь типа нажатия PgDn (которое контролы почти все обрабытывают нормально), надо токо словить событие поворота колесика и удостоверится что при этом курсор был над нашим контролом - это делается через сабклассинг.
Посмотри пример для ListBox: http://sources.codenet.ru/download.php?id=361&cid=25&o=0&my=0
Там самый клинический случай, когда контрол даже не обрабатывает события типа WM_VSCROL, поэтому универсальные дрова работающие по принципу определить окно под курсором мыши послать ему сообщение WM_VSCROL пролетают. Но мы можем взять это на себя, и послать вместо WM_VSCROL что-нибудь типа нажатия PgDn (которое контролы почти все обрабытывают нормально), надо токо словить событие поворота колесика и удостоверится что при этом курсор был над нашим контролом - это делается через сабклассинг.
Спасибо, буду разбираться.
Public Sub HookForm
мне не понятна эта стока
hndForm = FindWindow("ThunderDFrame", frm.Caption)
а конкретно откуда взялось название класса окна "ThunderDFrame" .
Что писать что бы работало в общем случае ?
я заменил hndForm = FindWindow("ThunderDFrame", frm.Caption)
на hndForm = frm.hwnd
все заработало, спасибо
Все, вопрос снят, разобрался.
я заменил hndForm = FindWindow("ThunderDFrame", frm.Caption)
на hndForm = frm.hwnd
все заработало, спасибо
Заработало? а ну да, FindWindow("ThunderDFrame", frm.Caption) - это поиск UserForm'ы (в VBA они так называются). Через Spy++ подсмотрел их класс и ищу одновременно по классу и по названию окна - для надежности. Просто у UserForm'ы нет свойства hwnd, поэтому приходится выпытать его через API.
Не секрет что обычный DBGrid не обрабатывает события прокрутки колесика. Хотелось бы иметь такую возможность для перемещения по записям набора данных. Кстати сам VB я научил воспринимать колесика для прокрутки окна с кодом и т.п. Кому надо, могу ссылку кинуть
Очень надо! Скинь пжлста!