Текущий архив: 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