Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Редирект сообщения 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]

ну это.. окно его как-то ворует сообщение?


Наверх

Титульная страница Поиск, карта сайта Написать письмо