Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Над контролом ли мышь? (API only)


Страницы:   1 2

Б. Гейтс ©   (2007-11-13 21:45:00) 

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


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

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


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

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


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

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

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


SergeyIT   (2007-11-14 18:27:00) [4]

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


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

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

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


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

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


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

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


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

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


Denis__   (2007-11-14 17:11:00) [8]


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

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

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

или

Johnmen ©   (14.11.07 15:29) [7]


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

Отправил


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

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


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


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


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

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


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

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

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


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


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


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


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

Да.


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


> Корректно.

Так и сделаю.

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


Johnmen   (2007-11-14 15:29:00) [16]


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

Корректно.


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


> Пиво пить

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


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


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


Пиво пить


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


> TrackMouseEvent

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


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


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

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо