Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

аналог OnMouseMove???

18K
18 октября 2006 года
Five_stars
7 / / 24.08.2006
Существует ли фунция (не OnMouseMove ) , которая напрямую опрашивает мышь о нажатых клавишах?
21K
18 октября 2006 года
Nuller_
6 / / 06.10.2006
DOS, прерывание 33h

ps: и с каких это пор OnMouseMove обрабатывает нажатия клавиш??
18K
18 октября 2006 года
Five_stars
7 / / 24.08.2006
[QUOTE=Nuller_]ps: и с каких это пор OnMouseMove обрабатывает нажатия клавиш??[/QUOTE]
А с тех пор, как появился прототип. . .

afx_msg void OnMouseMove( UINT nFlags, CPoint point );

. . . и далее . . .

nFlags:
Указывает различные нажатые виртуальные клавиши. Этот параметр может быть любой комбинацией следующих значений:


MK_CONTROL Установлен если клавиша CTRL нажата.
MK_LBUTTON Установлен если левая кнопка мыши нажата.
MK_MBUTTON Установлен если средняя кнопка мыши нажата.
MK_RBUTTON Установлен если правая кнопка мыши нажата.
MK_SHIFT Установлен если SHIFT нажата.

:)
547
19 октября 2006 года
Hydra
488 / / 20.06.2006
А зачем опрашивать - можно ловить сообщения мыши и запоминать.
3.3K
19 октября 2006 года
ShadyMan
191 / / 15.07.2006
Действительно, автор топика, видимо, не совсем понимает, что такое Windows API, причём явно мыслит категориями всяких там визуальных студий. В Windows API нет функции OnMouseMove. Всё делается через получение сообщений функцией GetMessage и некоторыми другими.
18K
19 октября 2006 года
Five_stars
7 / / 24.08.2006
[QUOTE=Hydra]А зачем опрашивать - можно ловить сообщения мыши и запоминать.[/QUOTE]

Hydra, you are wright!

Но, во-первых, какие сообщения мыши будут вызываться, когда она [мышь] неподвижна, а кнопка нажимается?

Правильный ответ, наверное, никакого ( пока не передвинешь мышь). Понятно, что это немного не то, чего хотелось бы. . .

[QUOTE=ShadyMan]
Действительно, автор топика, видимо, не совсем понимает, что такое Windows API, причём явно мыслит категориями всяких там визуальных студий. В Windows API нет функции OnMouseMove. Всё делается через получение сообщений функцией GetMessage и некоторыми другими.
[/QUOTE]

Во-вторых, логика, если существует GetCursorPos, то может быть есть и "GetMouseKey".

ShadyMan, Вы слышали о GetCursorPos? Сожалею, функция существует и без "визуальных студий".
И еще, согласен, может быть, действительно "автор топика, видимо, не совсем понимает, что такое Windows API, причём явно мыслит категориями всяких там визуальных студий." Не отрицаю.

P.S.
Речь совсем не о onMouseMove. . .

P.P.S.
"Автор топика", ShadyMan, это слишком гордо для меня, пожалуйста, Five_stars.
562
20 октября 2006 года
tarekon
175 / / 19.08.2003
Цитата:

Но, во-первых, какие сообщения мыши будут вызываться, когда она [мышь] неподвижна, а кнопка нажимается?

Правильный ответ, наверное, никакого ( пока не передвинешь мышь). Понятно, что это немного не то, чего хотелось бы. . .


Когда нажимается кнопка, приходит сообщение WM_LBUTTONDOWN (или WM_RBUTTONDOWN и пр.). Даже при неподвижной мышке :-)

Цитата:

Во-вторых, логика, если существует GetCursorPos, то может быть есть и "GetMouseKey".


Получить состояние всех клавиш - клавиатурных или мышиных - можно с помощью GetAsyncKeyState():

 
Код:
short res = GetAsyncKeyState( VK_LBUTTON );
if( HIBYTE(res) != 0 ) {
   // Кнопка в данный момент нажата
}

Цитата:

ps: и с каких это пор OnMouseMove обрабатывает нажатия клавиш??


С момента появления сообщения WM_MOUSEMOVE, wParam которого содержит состояние клавиш в момент отправления сообщения.

18K
20 октября 2006 года
Five_stars
7 / / 24.08.2006
Спасибо, tarekon, за GetAsyncKeyState.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог