-
Dmitry (28.11.14 13:42) [0]Привет всем!!
Подскажите пожалуйста кто сталкивался...
Есть функционал для того чтобы перехватить сообщения мыши. Работает через хук.
Точнее работал, пока я не столкнулся с TListview.
Дело в том что если мышкой щелкнуть на любом item списка, то сообщение WM_LMouseUp не приходит!
Если кликнуть на свободном месте, все нормально. но на Item - нет и все...
Искал в интернете - Куча таких сообщений!!! http://link.ac/4Enl7
однако подходящего решения там нет. Не ожидал что хук на мышку может облажаться... Что делать?? -
Dmitry (28.11.14 14:10) [1]Посмотрел исходный код TCustomListView.WMLButtonDown
Там они посылают САМИ сообщение Perform(WM_LBUTTONUP, 0, MakeLong(X, Y)); не дожидаясь фактического отпускания кнопки мышки пользователем...
Что можно с этим придумать? Как отловить через хук? -
Dmitry (28.11.14 16:30) [2]Решил вопрос с помощью АПИ проверки на состояние кнопок мыши
if (GetSystemMetrics(SM_SWAPBUTTON)=0) then begin
if (GetAsyncKeyState(VK_LBUTTON) and 32768 = 0) then
begin
FMouseIsDown:=false;
exit;
end;
end
else begin
if (GetAsyncKeyState(VK_RBUTTON) and 32768 = 0) then
begin
FMouseIsDown:=false;
exit;
end;
end;