Главная страница
    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.49 MB
Время: 0.031 c
3-1185537092
Nemec
2007-07-27 15:51
2007.12.09
компоненты TIBQuery и IBUpdateSQL1


3-1185952264
dimaL
2007-08-01 11:11
2007.12.09
Хранимые процедуры Interbase


11-1180814692
=BuckLr=
2007-06-03 00:04
2007.12.09
RichEdit и RE_OverwriteMode


15-1194442691
Elec3C
2007-11-07 16:38
2007.12.09
Для тех, у кого Win2000


15-1194534907
Alral
2007-11-08 18:15
2007.12.09
MSXML 4.0 SP2 Setup





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский