Як поставити trackmouseevent

як поставити TrackMouseEvent?

сабж
власне функція виконується правильно нон повідомлення не приходять :( як бути.

пишу

var
# XA0; tme. tagTRACKMOUSEEVENT;

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

потім пробував так

procedure WMMouseHover (var Message. TMessage); message WM_MOUSEHOVER;
# XA0; # XA0; procedure WMMouseLeave (var Message. TMessage); message WM_MOUSELEAVE;

а так само ось так

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

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

І ніфіга! = (І що я не так роблю.

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

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

Пам'ять: 0.72 MB
Час: 0.272 c

Схожі статті