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

Ваш аккаунт

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

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

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

Перехват событий мыши.

12K
31 марта 2006 года
Chinchipos
12 / / 02.12.2005
Я ставлю системный хук на мышь, ловлю события, но возникают некоторые вещи, которые я хочу обойти.
1) Когда пользователь кликает 2 раза (например над иконкой к.-либо), я получаю события: LBUTTONDOWN, LBUTTONUP, LBUTTONUP,LBUTTONDBLCLK. То есть 1 раз кнопка упала и два раза поднялась, а потом дабл-клик появился. Как получить второе падение кнопки?
2) Все тоже самое, но только с правой кнопкой.

Ниже фрагмент DLL:
LRESULT CALLBACK MouseProc(int code, WPARAM wParam, LPARAM lParam)
{.....
MOUSEHOOKSTRUCT* mouse_data = (MOUSEHOOKSTRUCT*)(lParam);
.........
switch(wParam)
{.......
case WM_LBUTTONDBLCLK:xPos = mouse_data->pt.x;
yPos = mouse_data->pt.y;
_handle = fopen("E:\\Data\\LBUTTONDBLCLK.txt","a");
fprintf(_handle, "%d %d %d\n", xPos, yPos,Timer);
fclose(_handle);
return CallNextHookEx(NULL,code,wParam,lParam);
//Левая кнопка нажата
case WM_LBUTTONDOWN:xPos = mouse_data->pt.x;
yPos = mouse_data->pt.y;
_handle = fopen("E:\\Data\\LBUTTON.txt","a");
fprintf(_handle, "%d %d %d %d\n", xPos, yPos, Timer, 0);
fclose(_handle);
return CallNextHookEx(NULL,code,wParam,lParam);
//Левая кнопка отпущена
case WM_LBUTTONUP: xPos = mouse_data->pt.x;
yPos = mouse_data->pt.y;
_handle = fopen("E:\\Data\\LBUTTON.txt","a");
fprintf(_handle, "%d %d %d %d\n", xPos, yPos, Timer, 1);
fclose(_handle);
return CallNextHookEx(NULL,code,wParam,lParam);
........
}
.....
}
14K
31 марта 2006 года
halflifer
28 / / 14.03.2006
Цитата:
Originally posted by Chinchipos
Я ставлю системный хук на мышь, ловлю события, но возникают некоторые вещи, которые я хочу обойти.
1) Когда пользователь кликает 2 раза (например над иконкой к.-либо), я получаю события: LBUTTONDOWN, LBUTTONUP, LBUTTONUP,LBUTTONDBLCLK. То есть 1 раз кнопка упала и два раза поднялась, а потом дабл-клик появился. Как получить второе падение кнопки?
2) Все тоже самое, но только с правой кнопкой.

Ниже я прикрепил свою DLL.



DDl не вижу.
У мя события приходят так:
LBUTTONDOWN
LBUTTONCLK
LBUTTONUP
LBUTTONDBLCLK
LBUTTONDOWN
LBUTTONUP

Проверь исходники еще раз.

И вероятно для правой клавиши дабла нет. Может я не прав?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог