Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   SendMessage( ) Nachricht 1:1 weiter senden (https://www.delphipraxis.net/181610-sendmessage-nachricht-1-1-weiter-senden.html)

luisk 28. Aug 2014 20:10


SendMessage( ) Nachricht 1:1 weiter senden
 
Wie kann ich eine Nachricht über SendMessage( ) 1:1 weiter senden ?
Delphi-Quellcode:
  procedure WMMouseWheel(var in_Message: TWMMouseWheel); message WM_MOUSEWHEEL;
Delphi-Quellcode:
procedure TForm1.WMMouseWheel ( var in_Message: TWMMouseWheel );
var l_mousePos: TPoint;
     l_wc: TWinControl;
begin
     l_mousePos.X := in_Message.XPos;
     l_mousePos.Y := in_Message.YPos;
     l_wc := FindVCLWindow(l_mousePos);

        if l_wc = nil then begin
           in_Message.Result:=1;
        end else if l_wc.Handle <> in_Message.Msg then begin
            SendMessage(l_wc.Handle, WM_MOUSEWHEEL, ???, ??? );
            in_Message.Result:=1;
        end;
end;
Wie kann ich in_Message:TWMMouseWheel 1:1 weiter senden, so dass ich die x,y Koordinaten
im unterlagerten WinControl auch empfangen kann ?

Delphi-Quellcode:
   
CL_Panel = class (TPanel)
   procedure WMMouseWheel(var in_Message: TWMMouseWheel); message WM_MOUSEWHEEL;
end;
Delphi-Quellcode:
procedure CL_Panel.WMMouseWheel ( var in_Message: TWMMouseWheel );
var mousePos: TPoint;
     wc: TWinControl;
begin
   mousePos.X := in_Message.XPos;
   mousePos.Y := in_Message.YPos;
   in_Message.Result:=1;
end;

OlafSt 28. Aug 2014 20:34

AW: SendMessage( ) Nachricht 1:1 weiter senden
 
in_Message.Result NICHT auf 1 setzen.

luisk 28. Aug 2014 20:40

AW: SendMessage( ) Nachricht 1:1 weiter senden
 
und wie muss ich SendMessage parametrieren, damit ich den kompletten Record weiter geben kann ?
Delphi-Quellcode:
SendMessage(l_wc.Handle, WM_MOUSEWHEEL, ???, ??? );
http://www.florianmarlin.com/wp-cont...eur-arrose.jpg

DeddyH 29. Aug 2014 07:52

AW: SendMessage( ) Nachricht 1:1 weiter senden
 
Vielleicht so?
Delphi-Quellcode:
procedure CL_Panel.WMMouseWheel(var in_Message: TWMMouseWheel);
var
  Msg: TMessage;
begin
  Msg := TMessage(in_Message);
  SendMessage(l_wc.Handle, Msg.Msg, Msg.WParam, Msg.LParam);
end;

luisk 29. Aug 2014 21:11

AW: SendMessage( ) Nachricht 1:1 weiter senden
 
Danke, super:
Delphi-Quellcode:
procedure CL_Panel.WMMouseWheel(var in_Message: TWMMouseWheel);
var l_mousePos: TPoint;
     l_wc: TWinControl;
begin
   l_mousePos.X := in_Message.XPos;
   l_mousePos.Y := in_Message.YPos;
   l_wc := FindVCLWindow(l_mousePos);
   SendMessage(l_wc.Handle, TMessage(in_Message).Msg, TMessage(in_Message).WParam, TMessage(in_Message).LParam );
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz