Конференция "WinAPI" » Не передавать сообщение мыши
 
  • inferno (11.01.09 09:49) [0]
    Здравствуйте.
    Есть глобальный хук WH_MOUSE в dll, обработчик передает сообщения в программу
    SendMessage(FindWindow(nil,'Pipetka'),WM_USER+2,wParam,lParam);


    Задача такая: в определенной ситуации нужно, чтобы сообщение передалось в программу, но мышь не сработала, т.е. чтобы перехваченное мной сообщение обработалось моим обработчиком но не передалось дальше.

    function ms_hook(code : integer; wParam : word; lParam : longint) : longint; stdcall;
    begin
     if code >=0 then
     begin
        SendMessage(FindWindow(nil,'myForm'),WM_USER+2,wParam,lParam);
     end;
     if (условие) then Result:= CallNextHookEx(MouHook, Code, wParam, lParam)
     else //!!!!...........!!!!
    end;

  • Сергей М. © (11.01.09 11:15) [1]

    > inferno


    В справке черным по белому написано:

    Return Values

    To enable the system to process the message, the return value must be zero. To discard the message, the return value must be a nonzero value.
  • inferno (11.01.09 11:23) [2]
    Спасибо, но, если я правильно понял, то такой вариант я уже пробовал.

    function ms_hook(code : integer; wParam : word; lParam : longint) : longint; stdcall;
    begin
     if code >=0 then
     begin
        SendMessage(FindWindow(nil,'MyForm'),WM_USER+2,wParam,lParam);
     end;
     { Пытаемся передать сообщение дальше по цепочке hook-ов. }
     if ((wParam=WM_LBUTTONDOWN) or (wParam=WM_NCLBUTTONDOWN) and (MouEnab=false) then
       Result:=0
       else Result:= CallNextHookEx(MouHook, Code, wParam, lParam);
    end;

  • Leonid Troyanovsky © (11.01.09 13:12) [3]

    > inferno   (11.01.09 11:23) [2]

    > Спасибо, но, если я правильно понял, то такой вариант я
    > уже пробовал.

    If the hook procedure processed the message, it may return a nonzero
    value to prevent the system from passing the message to the target window
    procedure
    .

    --
    Regards, LVT.
  • inferno (13.01.09 08:19) [4]
    Спасибо что ткнули носом ))
 
Конференция "WinAPI" » Не передавать сообщение мыши
Есть новые Нет новых   [134435   +35][b:0][p:0.001]