Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Message problem (https://www.delphipraxis.net/115536-message-problem.html)

EWeiss 13. Jun 2008 15:23


Message problem
 
warum komme ich nicht in diese Message ?
LBUTTONDOWN !

Delphi-Quellcode:
function VisualProc(WndHandle : HWND;
                    Msg : DWORD; wParam, lParam : Longint): longInt; stdcall;
var
  ps : PAINTSTRUCT;

begin

    if Msg = WM_ERASEBKGND then
      begin
        Result := 1;
        exit;
      end else
      if Msg = WM_MOUSEMOVE then
      begin
        if (Msg = WM_LBUTTONDOWN) then
          if (GetFocus <> WndHandle) then
            SetFocus(WndHandle);

        BassBoxInfo^.Msg   := BBP_MOUSE;
        BassBoxInfo^.WinMsg := Msg ;
        BassBoxInfo^.wParam := wParam;
        BassBoxInfo^.lParam := lParam;

        BbpPluginFunc(BassBoxInfo^);
      end else

      if Msg = WM_PAINT then
      begin
        BeginPaint(WndHandle, ps);
        EndPaint(WndHandle, ps);
        Result := 0;
        Exit;
      end;
    result := DefWindowProc(WndHandle, Msg, wParam, lParam);

end;
hinter WM_LBUTTONDOWN komme ich bei WM_MOUSEMOVE hinein
Fokus ist auch vorhanden.

gruss Emil

DeddyH 13. Jun 2008 15:25

Re: Message problem
 
Kann eine Message denn gleichzeitig WM_MOUSEMOVE und WM_LBUTTONDOWN sein?

toms 13. Jun 2008 15:25

Re: Message problem
 
Delphi-Quellcode:
      if Msg = WM_MOUSEMOVE then
      begin
        if (Msg = WM_LBUTTONDOWN) then

Msg kann doch nicht beides sein!?!

Dunkel 13. Jun 2008 15:26

Re: Message problem
 
Msg kann nicht gleichzeitig WM_MOUSEMOVE únd WM_LBUTTONDOWN sein, was bei Deiner momentanen Abfrage aber der Fall sein müsste.

1234588 13. Jun 2008 15:31

Re: Message problem
 
warum gestaltest du das ganze nicht einfach mit einem case block anstatt if..then..else if?

EWeiss 13. Jun 2008 15:33

Re: Message problem
 
Zitat:

Zitat von Dunkel
Msg kann nicht gleichzeitig WM_MOUSEMOVE únd WM_LBUTTONDOWN sein, was bei Deiner momentanen Abfrage aber der Fall sein müsste.

hmmm wo hat mich da das Pferd getreten .. richtig
danke ;)

habs geändert
Delphi-Quellcode:
function VisualProc(WndHandle : HWND;
                    Msg : DWORD; wParam, lParam : Longint): longInt; stdcall;
var
  ps : PAINTSTRUCT;

begin

    if Msg = WM_ERASEBKGND then
      begin
        Result := 1;
        exit;
      end else
      if Msg = WM_MOUSEMOVE then
      begin

        BassBoxInfo^.Msg   := BBP_MOUSE;
        BassBoxInfo^.WinMsg := Msg ;
        BassBoxInfo^.wParam := wParam;
        BassBoxInfo^.lParam := lParam;

        BbpPluginFunc(BassBoxInfo^);
      end else
      if (Msg = WM_LBUTTONDOWN) then
      begin
        if (GetFocus <> WndHandle) then
          SetFocus(WndHandle);

        BassBoxInfo^.WinMsg := Msg ;
        BassBoxInfo^.wParam := wParam;
        BassBoxInfo^.lParam := lParam;

        BbpPluginFunc(BassBoxInfo^);
      end;
      if Msg = WM_PAINT then
      begin
        BeginPaint(WndHandle, ps);
        EndPaint(WndHandle, ps);
        Result := 0;
        Exit;
      end;
    result := DefWindowProc(WndHandle, Msg, wParam, lParam);

end;
gruss Emil

EWeiss 13. Jun 2008 15:35

Re: Message problem
 
Zitat:

Zitat von 1234588
warum gestaltest du das ganze nicht einfach mit einem case block anstatt if..then..else if?

Ist Ansichtssache hat keinerlei auswirkung auf die ausgeführte aktion
beides das gleiche.

gruss Emil

DeddyH 13. Jun 2008 15:38

Re: Message problem
 
Nicht ganz, da case nur einmal prüfen muss und somit performanter ist.

1234588 13. Jun 2008 15:39

Re: Message problem
 
und imho sollte man nur verschachteln wenn noetig

EWeiss 13. Jun 2008 15:40

Re: Message problem
 
Zitat:

Zitat von DeddyH
Nicht ganz, da case nur einmal prüfen muss und somit performanter ist.

Kann es ändern aber was macht das aus ? in micro sekunden ?

gruss Emil


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:16 Uhr.
Seite 1 von 2  1 2      

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