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

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

как поставить TrackMouseEvent ? [D7, WinXP]


pirat ©   (2004-01-30 00:19:00) 

сабж
собственно функция выполняется правильно нон сообщения не приходят :( как быть ??


pirat   (2004-01-30 21:32:00) [1]

А примерчик можно ? Я конечно не совсем криворукий, но пока что у меня приходит только hover, и только при переходе между child и самим окном :(
Видел у мелкософта в knoleage base как это эмулировать на 95 и старых nt. А вот без всяких извратов обойтись можно?


DVM   (2004-01-30 17:51:00) [2]

А где ты ее ставишь? Тут идея какая: при перемещении мышки над окном надо в обработчике перемещения все время вызывать TME, тогда можно будет отловить факт ухода мышки с окна. При заходе мышки в окно сообщение и так придет.


pirat   (2004-01-30 17:12:00) [3]

пишу

var
 tme : tagTRACKMOUSEEVENT;
...
 tme.cbSize := sizeof(tagTRACKMOUSEEVENT);
 tme.dwFlags := TME_QUERY or TME_HOVER or TME_LEAVE;
 tme.hwndTrack:= self.Handle;
 tme.dwHoverTime := 50;//HOVER_DEFAULT;
 if not TrackMouseEvent(tme) then
   somemessage...
 


потом пробовал так

procedure WMMouseHover(var Message : TMessage);message WM_MOUSEHOVER;
   procedure WMMouseLeave(var Message : TMessage);message WM_MOUSELEAVE;

а так же вот так

procedure TForm1.NewProc(var Message: TMessage);
begin

   if Message.Msg = WM_MOUSEHOVER then
    Caption := 'hover' else
   if Message.Msg = WM_MOUSELEAVE then
    Caption := 'leave';
     
OldProc(Message);
end;


И НИФИГА! =( и что я не так делаю ??


Slym   (2004-01-30 09:27:00) [4]

ТЫ про сообщения WM_MOUSEHOVER и WM_MOUSELEAVE чтоли?
А привести содержание TRACKMOUSEEVENT не вылом?


Наверх

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