Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.09;
Скачать: CL | DM;

Вниз

Над контролом ли мышь? (API only)   Найти похожие ветки 

 
Б. Гейтс   (2007-11-13 21:45) [0]

Ребята, мне нужно ловить момент, когда мышь покидает или приходит к контролу, который был создан CreateWindowEx"ом. (что-то типа вроде похоже на OnMouseOver и OnMouseOut).
Пишу на чистом апи, поэтому могу использовать только его.
Не нашел ничего, кроме wm_mousemove. Че мне делать, а?
Заранее респект за ответы


 
homm ©   (2007-11-13 21:50) [1]

TrackMouseEvent


 
Johnmen ©   (2007-11-13 22:43) [2]


> Че мне делать, а?

Вернуть все деньги за все проданные копии отстойного виндовса.
Ой, ошибся, лицензии...


 
Германн ©   (2007-11-14 01:20) [3]


> к контролу, который был создан CreateWindowEx"ом

И Винда маздай и Б. Гейтс   (13.11.07 21:45) ни чем не лучше.
:)


 
Б. Гейтс   (2007-11-14 15:06) [4]


> TrackMouseEvent

Спасибо за ответ!
А как надо с этим работать? (API знаю 3 месяца, а в справочнике нету)


 
Игорь Шевченко ©   (2007-11-14 15:13) [5]


> Че мне делать, а?


Пиво пить


 
Б. Гейтс   (2007-11-14 15:24) [6]


> Пиво пить

Ответь на вот этот вопрос: А как надо с этим работать?


 
Johnmen ©   (2007-11-14 15:29) [7]


> А как надо с этим работать?

Корректно.


 
Б. Гейтс   (2007-11-14 15:33) [8]


> Корректно.

Так и сделаю.

Никто не может сюда записать пример? А то в английском справочнике нету, а работать с этим не могу


 
Johnmen ©   (2007-11-14 15:35) [9]


> Никто не может сюда записать пример?

Да.


 
Б. Гейтс   (2007-11-14 15:48) [10]


> профессионалам отдельная просьба - быть снисходительными


 
SergeyIT ©   (2007-11-14 16:32) [11]

> > профессионалам отдельная просьба - быть снисходительными

Куда прислать? - давайте майл


 
Сергей М. ©   (2007-11-14 16:53) [12]


> А то в английском справочнике нету


Врешь и не краснеешь)

The TrackMouseEvent function posts messages when the mouse pointer leaves a window or hovers over a window for a specified amount of time.

BOOL TrackMouseEvent(

   LPTRACKMOUSEEVENT lpEventTrack // pointer to a TRACKMOUSEEVENT structure
  );


Parameters

lpEventTrack

Pointer to a TRACKMOUSEEVENT structure.



Return Values

If the function succeeds, the return value is nonzero .
If the function fails, return value is zero. To get extended error information, call GetLastError.
The messages that the function can post are the following:

Message Meaning
WM_MOUSEHOVER The mouse hovered over the client area of the window for the period of time specified in a prior call to TrackMouseEvent. Hover tracking stops when this message is generated. The application must call TrackMouseEvent again if it requires further tracking of mouse hover behavior.
WM_MOUSELEAVE The mouse left the client area of the window specified in a prior call to TrackMouseEvent. All tracking requested by TrackMouseEvent is canceled when this message is generated. The application must call TrackMouseEvent when the mouse re-enters its window if it requires further tracking of mouse hover behavior.


Remarks

The mouse pointer is considered to be hovering when it stays within a specified rectangle for a specified period of time. Call SystemParametersInfo and use the values SPI_GETMOUSEHOVERWIDTH, SPI_GETMOUSEHOVERHEIGHT, and SPI_GETMOUSEHOVERTIME to retrieve the size of the rectangle and the time.

See Also

SystemParametersInfo, TRACKMOUSEEVENT


 
Б. Гейтс   (2007-11-14 17:00) [13]

ildarsv@mail.ru
Буду очень благодарен!


 
SergeyIT ©   (2007-11-14 17:10) [14]

Отправил


 
Denis__ ©   (2007-11-14 17:11) [15]


> Б. Гейтс   (14.11.07 17:00) [13]

Так Сергей М. дал тебе, то что ты хотел! Теперь или

Игорь Шевченко ©   (14.11.07 15:13) [5]

или

Johnmen ©   (14.11.07 15:29) [7]


 
Б. Гейтс   (2007-11-14 17:23) [16]

SergeyIT
ОК принял, огромное спасибо! Буду пока сейчас разбираться сидеть, если не получится - скажу


> А то в английском справочнике нету

Там было, я хотел написать "в русском справочнике", но мысли сбились


 
Сергей М. ©   (2007-11-14 17:24) [17]

А какая разница, в русском или в нерусском ?
Смысл-то один и тот же, это же не стихи)


 
Б. Гейтс   (2007-11-14 18:14) [18]

SergeyIT
Огромное спасибо! Разобрался, теперь все работает!
Обошелся без хуков
ev.dwFlags := TME_LEAVE or TME_HOVER

Можно закрывать ветку


 
SergeyIT ©   (2007-11-14 18:27) [19]

> Огромное спасибо!
Пожалуйста


 
Б. Гейтс   (2007-11-14 20:28) [20]

Будет ли это разумно, если я поставлю вместо
ev.dwHowerTime := HOVER_DEFAULT
вот это:
ev.dwHowerTime := 1

Если писать так, то никакого опоздания при WM_MOUSEHOVER нет. Не будет ли это подтормаживать систему?


 
Б. Гейтс   (2007-11-14 20:39) [21]

И еще вопрос.
Вот допустим отправили контролу сообщение WM_LBUTTONDOWN.
Потом, не отпуская кнопку мыши, отправили еще сообщение WM_MOUSELEAVE. И отпустили кнопку мыши за пределами контрола. А мой контрол сообщение WM_LBUTTONUP так и не получил. Как его получить?


 
SergeyIT   (2007-11-14 22:03) [22]

Так если Hook, как в примере, использовать - все можно получить.



Страницы: 1 вся ветка

Текущий архив: 2007.12.09;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.023 c
3-1186388283
DelphiLexx
2007-08-06 12:18
2007.12.09
Импортирование данных из XML


2-1194979500
Б. Гейтс
2007-11-13 21:45
2007.12.09
Над контролом ли мышь? (API only)


6-1175280082
Адепт Магии Слова
2007-03-30 22:41
2007.12.09
Как програмно можно изменить рабочую группу компьютера


15-1194954884
Palladin
2007-11-13 14:54
2007.12.09
IDE Help Windows SDK


6-1175602922
user51
2007-04-03 16:22
2007.12.09
Как лучше реализовать пересылку пакетов