![]() |
|
![]() ![]() ![]() |
|
Dogo |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 20.2.2007 Где: Санкт-Петербург Репутация: 2 Всего: 9 |
Всем привет!
Пытаюсь постичь создание ActiveX компонентов(MFC). Столкнулся с проблемой. Создаю кнопку, пытаюсь обработать события мыши. Если с нажатиями кнопок все тривиально, то вот с "уходом" курсора мыши с кнопки ничего не могу придумать... Задумка такова, когда курсор попадает на кнопку, кнопка визуально приближается, а когда курсор с покидает кнопку, она должна принять свое первоначальное состояние. Событие мышка над кнопкой обрабатываю WM_MOUSEMOVE... После ухода курсора с кнопки по понятным причинам она остается в своем "увеличенном положении" ... Как объяснить контролу что мышка не находится над ним? ![]() --------------------
|
|||
|
||||
akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: нет Всего: 5 |
Попробуй "переключать" состояние контрола на его границе. Если left=0, кнопка в неактивном состоянии, если left==1, начинает визуально приближаться (и по всем границам по аналогии). Самый простой, по-моему, финт конем.
-------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
Mihhail |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 13.9.2007 Репутация: нет Всего: 9 |
Ничего не получиться, при быстрых движениях указателя такое не возможно отследить. В таких случаях используется захват мыши окном: HWND SetCapture( HWND ); Вызываем её как при наведении указателя на контрол. После этого где бы указатель не находился сообщение WM_MOUSEMOVE будет приходить в указанное окно. Проверяем координаты и если указатель уже не над нашим контролом освобождаем мышь: BOOL ReleaseCapture(VOID); Это сообщение отредактировал(а) Mihhail - 25.9.2007, 08:31 |
|||
|
||||
Dogo |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 20.2.2007 Где: Санкт-Петербург Репутация: 2 Всего: 9 |
Mihhail, Огромное спасибо!
![]() То что нужно!!! ![]() --------------------
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |