AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Message problem

Ein Thema von EWeiss · begonnen am 13. Jun 2008 · letzter Beitrag vom 13. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

Message problem

  Alt 13. Jun 2008, 15:23
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Message problem

  Alt 13. Jun 2008, 15:25
Kann eine Message denn gleichzeitig WM_MOUSEMOVE und WM_LBUTTONDOWN sein?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: Message problem

  Alt 13. Jun 2008, 15:25
Delphi-Quellcode:
      if Msg = WM_MOUSEMOVE then
      begin
        if (Msg = WM_LBUTTONDOWN) then

Msg kann doch nicht beides sein!?!
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Message problem

  Alt 13. Jun 2008, 15:26
Msg kann nicht gleichzeitig WM_MOUSEMOVE únd WM_LBUTTONDOWN sein, was bei Deiner momentanen Abfrage aber der Fall sein müsste.
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
1234588

Registriert seit: 14. Jan 2007
Ort: Stuttgart
164 Beiträge
 
#5

Re: Message problem

  Alt 13. Jun 2008, 15:31
warum gestaltest du das ganze nicht einfach mit einem case block anstatt if..then..else if?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

Re: Message problem

  Alt 13. Jun 2008, 15:33
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
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

Re: Message problem

  Alt 13. Jun 2008, 15:35
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Message problem

  Alt 13. Jun 2008, 15:38
Nicht ganz, da case nur einmal prüfen muss und somit performanter ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
1234588

Registriert seit: 14. Jan 2007
Ort: Stuttgart
164 Beiträge
 
#9

Re: Message problem

  Alt 13. Jun 2008, 15:39
und imho sollte man nur verschachteln wenn noetig
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

Re: Message problem

  Alt 13. Jun 2008, 15:40
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 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