![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Редирект сообщения MouseWheel
EgorovAlex © (2010-02-25 13:54:00)Использую такой код:
//TApplicationEvents.OnMessage procedure TMainForm.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
var mousePos: TPoint;
wc: TWinControl;
begin
//mouse wheel scrolling for the control under the mouse
if Msg.message = WM_MOUSEWHEEL then
begin
mousePos.X := Word(Msg.lParam);
mousePos.Y := HiWord(Msg.lParam);
wc := FindVCLWindow(mousePos);
if wc = nil then
Handled := True
else
if wc.Handle <> Msg.hwnd then
egin
SendMessage(wc.Handle, WM_MOUSEWHEEL, Msg.wParam, Msg.lParam);
Handled := True;
end;
end;
end;
Он работает так - прокручивается тот контрол при повороте колеса мыши, над которым находится мышь, а не тот, который имеет в данные момент фокус ввода. Это всё работает прекрасно пока я не кидаю на форму TVirtualStringTree. C ним это не проходит :( И на него сообщение не редиректится и когда он активен не редиректятся сообщения другим контролам. Может кто знает почему это может быть?
KilkennyCat (2010-02-25 14:12:00) [1]Почему ворует? он первый его получает.
12 (2010-02-25 14:04:00) [2]ну это.. окно его как-то ворует сообщение?