Конференция "WinAPI" » TListView WM_LMouseUP [D7, WinXP]
 
  • 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;
 
Конференция "WinAPI" » TListView WM_LMouseUP [D7, WinXP]
Есть новые Нет новых   [118456   +51][b:0][p:0]