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

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

Мышь


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() я могу, а вот как узнать двигалась ли мышь во время клика?


Наверх

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