Autor Beitrag
O'rallY
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: Sa 17.07.04 11:52 
Wie kann ich verhindern, wenn man die Maus z.B. über ein Mainmenu bewegt, dass dieses darauf mit einem Highlight reagiert. Ich will also verhindern, dass nichts neu gezeichnet wird, wenn die Maus drüber ist.

Eigentlich will ich komplett verhindern, dass noch irgendein Objekt/Window eine Nachricht erhält, die durch die Maus ausgelöst wird. Mausklick lassen sich ja leicht mit einem globalen Maushook abfangen, Mausbewegungen allerdings nicht.

Ich hatte das bislang mit einer unsichtbaren Form gelöst, die über den Bildschirm gelegt wird. Jedoch ist eine deutliche Verzögerung zu spüren, wenn die Form in der Vordergrund geschoben wird.

Fällt euch eine bessere Lösung ein?

_________________
.oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Sa 17.07.04 17:07 
Suche in: Delphi-Forum, Delphi-Library CLIPCURSOR fängt die Maus in einem Rechteck fest, dann kann Sie nicht mehr bewegt werden (wenn das Rechteck klein genug ist :wink: )

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
O'rallY Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: So 18.07.04 12:25 
Vielleicht sollte ich noch dazu sagen, dass man die Maus noch bewegen können muss ;). Sorry. Trotzdem danke.

Ich dachte mir vielleicht, dass ich mittels eines WH_GETMSG-Hooks, WM_MOUSEMOVE-Messages derart modifizieren könnte, dass der Anschein entsteht, dass sich die Maus nicht bewegt. Jedoch scheint die Modifizierung nicht zu funktionieren.
Jedenfalls bringt eine Veränderung der TMsg-Struktur, auf die der lParam-Parameter zeigt, scheinbar keine Veränderung.

_________________
.oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...
SvenAbeln
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: Mo 19.07.04 12:10 
Hallo,

schau dir doch mal OnMessage von TApplication an, dort kannst du alle Messages abfangen und behandeln.
Dort setzt du für WM_MouseMove einfach Handled:=true und die Message wird nicht weiter gereicht.

Gruß,

Sven
O'rallY Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: Di 20.07.04 14:03 
Es geht mir ja nicht nur um meine eigene Anwendung, sondern um alle Anwendungen. Daher wollte ich ja mit einem globalen GetMsg-Hook arbeiten.

_________________
.oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...