Entwickler-Ecke

Windows API - Fenster aktivieren(blau) wenn ich mit der Maus drüberfahre


Chrischn - Do 31.10.02 22:26
Titel: Fenster aktivieren(blau) wenn ich mit der Maus drüberfahre
Hallo Delphi Freaks,

ich möchte das mein Programmfenster sofort aktiviert wird, wenn ich mit der Maus "drüberfahre". ( Ohne das ich klicken muss ). Wie kann ich das realisieren ?

Thx im vorraus :-)


LCS - Fr 01.11.02 09:04

Hi
IMHO musst du das bereits auf BS Ebene machen, da dein Fenster im inaktiven Zustand beim drüberfahren mit der Maus keine Ereignisse empfängt.
Mit TWeakUI kannst du das z. B. Einstellen.

Gruss Lothar


Sven - Fr 01.11.02 09:44

Füge in der Klassendefinition deines Fensters folgendes ein

Quelltext
1:
procedure WMNCHitTest(var msg: TWMNCHitTest); message WM_NCHITTEST;                    


Innerhalb der Implementation dieses dann:

Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.WMNCHitTest(var msg: TWMNCHitTest);
begin
  inherited;
  ...
  Dein Code zur Aktivierung
  ...
end; {WMNCHitTest}


Es könnte allerdings sein, daß dies nur bei der Titelleiste Deines Fensters funktioniert. Probiers halt aus.


Delete - Fr 01.11.02 14:37

Wie soll das gehen? Dein Code im Programm wird doch nur ausgeführt, wenn das Programm aktiv ist.

Man müßte mittels eine Hooks die Mausposition verfolgen und ständig prüfen, ob sie sich über ein fenster mit eienm bestimmten Handle befindet. Tut sie das, das Fenster aktivieren.

Kann aber sein, da man es ja angeblich bei TweakUI einstellen kann, das es auch einfacher geht, in dem man in der Registry einen Schalter umlegt.