![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как поставить 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 не вылом?