Перехват событий мыши.
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);
........
}
.....
}
Цитата:
Originally posted by Chinchipos
Я ставлю системный хук на мышь, ловлю события, но возникают некоторые вещи, которые я хочу обойти.
1) Когда пользователь кликает 2 раза (например над иконкой к.-либо), я получаю события: LBUTTONDOWN, LBUTTONUP, LBUTTONUP,LBUTTONDBLCLK. То есть 1 раз кнопка упала и два раза поднялась, а потом дабл-клик появился. Как получить второе падение кнопки?
2) Все тоже самое, но только с правой кнопкой.
Ниже я прикрепил свою DLL.
Я ставлю системный хук на мышь, ловлю события, но возникают некоторые вещи, которые я хочу обойти.
1) Когда пользователь кликает 2 раза (например над иконкой к.-либо), я получаю события: LBUTTONDOWN, LBUTTONUP, LBUTTONUP,LBUTTONDBLCLK. То есть 1 раз кнопка упала и два раза поднялась, а потом дабл-клик появился. Как получить второе падение кнопки?
2) Все тоже самое, но только с правой кнопкой.
Ниже я прикрепил свою DLL.
DDl не вижу.
У мя события приходят так:
LBUTTONDOWN
LBUTTONCLK
LBUTTONUP
LBUTTONDBLCLK
LBUTTONDOWN
LBUTTONUP
Проверь исходники еще раз.
И вероятно для правой клавиши дабла нет. Может я не прав?