WM_MOUSEHOVER

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
v@Mp!rO
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 17.01.2004 (Сб) 17:45

WM_MOUSEHOVER

Сообщение v@Mp!rO » 28.03.2004 (Вс) 12:08

Кто может прислать такой(или похожий) пример:
1)Есть форма с пикчабоксом.
2)Каждый раз когда юзарь наводит мишь на пикчабокс комп бипает (или вылазит месаджебокс, или еще что нить).
3)Всё это через апи! (не таймером, вдруг их 300 пикчабоксов!!!).

Всё это у меня есть только 2) происходит когда юзарь убирает курсор с пикчабокса!
Это константа WM_MOUSELEAVE,а мне надо что-то вроде WM_MOUSEHOVER.
В стандаотом апи справочнике из ВБ этой константы нет!

Примеры слать на d8mns@km.ru

Всем спасибо (заранее).

MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

Сообщение MOV » 28.03.2004 (Вс) 12:18

НАСКОЛЬКО ПОМНЮ

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
MsgBox "По моему так проще, зачем через API то?", vbOKOnly, "Внимание"
End Sub

То есть, если тебя правильно понял, проще использовать стандартное событие MouseMove.

MEMBER
Гугль
Гугль
 
Сообщения: 758
Зарегистрирован: 29.11.2002 (Пт) 12:02
Откуда: 10 этаж

Сообщение MEMBER » 28.03.2004 (Вс) 14:29

Вряд-ли это удачный пример. А если контролов 1000?
Нужно использовать control array.
Да, событие будет возникать при _ДВИЖЕНИИ_, а не при наведении, то есть всё время, пока курсор не покинет область picture, будет возникать это событие. придётся ввести глобальную переменную (флаг), который бы устанавливался в TRUE при вводе курсора в picture и в FALSE при уводе. Ну и ишшо граблей достаточно.
-----
Если бы на форуме нормально работал поиск, то можно было бы найти пример, их тут есть. Попробуйте поискать на old.vbstreets.ru
Господа! Пользуйтесь www.ya.ru
ЗЫ и www.planetsourcecode.com

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 29.03.2004 (Пн) 9:33

MEMBER писал(а):Да, событие будет возникать при _ДВИЖЕНИИ_, а не при наведении...

Неправда. Даже если мышь абсолютно неподвижна, Винда все равно время от времени генерит события WM_MOUSEMOVE и посылает их этому окну. Можешь проверить через Spy++.
А вот насчет флагов... Нет, без WM_HITTEST по-человечески такие вещи все равно не сделать, так что проще всего обойтись банальным мувом.

MEMBER
Гугль
Гугль
 
Сообщения: 758
Зарегистрирован: 29.11.2002 (Пт) 12:02
Откуда: 10 этаж

Сообщение MEMBER » 29.03.2004 (Пн) 12:20

В общем это я и имел ввиду.
Нужно ведь что? Чтобы событие генерировалось один раз. А при банальном муве оно будет генерится постоянно. Так что без флага никак не обойтись.
Господа! Пользуйтесь www.ya.ru
ЗЫ и www.planetsourcecode.com


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15

    TopList  
cron