![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мышь
artemkin © (2003-07-17 19:10:00)
Как узнать, нажималась ли правая кнопка мышы, а если нажималась, то двигалась ли она (при нажатой правой кнопке мыши)?
Marser (2003-07-20 21:43:00) [1]
> Asteroid © (20.07.03 15:50)
> > Marser © (20.07.03 11:45)
> Может быть все-таки VK_RBUTTON?
VK_ относятся к клавиатуре, MK_ - к мыши.
Song (2003-07-20 17:29:00) [2]
Нет, MK
Asteroid (2003-07-20 15:50:00) [3]
> Marser © (20.07.03 11:45)
Может быть все-таки VK_RBUTTON?
Marser (2003-07-20 11:45:00) [4]
> artemkin ©
> 2 Song : что делает GetAsyncKeyState() ?
Определяет состояние виртуальной клавиши.
GetAsyncKeyState(MK_RBUTTON) - возвращает целое с установленным старшим байтом(тут - словом), если была нажата виртуальная клавиша(в данном случае - правая кнопка мыши), то есть можно сделать примерно вот так
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var i:integer;
begin
i:=GetAsyncKeyState(MK_RBUTTON);
if hi(i)>0 then showmessage("При движении мыши нажата её правая кнока");
end;
artemkin (2003-07-20 09:32:00) [5]
Я понял так : Ловим WM_RMOUSEDOWN, потом, пока не пришло WM_RMOUSEUP хватаем WM_MOUSEMOVE, но конечно же над реализацией еще подумаю.
Но вот еще вопрос : как потом, если вдруг мыша двигалась, отменить все запрограммированные действия? и не отменять, если движения небыло ?
2 Song : что делает GetAsyncKeyState() ?
Song (2003-07-19 11:20:00) [6]
WM_MOUSEMOVE+GetAsyncKeyState()
Igit (2003-07-18 08:26:00) [7]
2artemkin
Если разберешься, напиши пример сюда...
Asteroid (2003-07-18 04:46:00) [8]
Поправка: во времяклила ничего больше не происходит. Нужно отловить WM_RBUTTONDOWN, поставить свой флаг, а затем отлавливать перемещения - ибо они идут другим сообщением.
ZZ (2003-07-17 20:53:00) [9]
Ну перехватывай еще что-нибудь (подсказать что или сам найдешь??)... или координаты сравинвай.
artemkin (2003-07-17 19:47:00) [10]
я имею в виду, что : перехватить сообщение WM_RButton Down() я могу, а вот как узнать двигалась ли мышь во время клика?