![]() |
Re: Verhindern, dass Objekte MouseOver-Event erhalten
Nun ja, wie ich schon sagte: Die Awendung verfügt über keine sichtbares Fenster. Außerdem muss die Maus über den gesamten Bildschirm bewegt werden können.
Ich habe auch schon versucht, wie oben zu lesen, eine Form mit AlphaBlend in den Vordergrund zu setzten. Ok, es hat funktioniert, da ich allerdings die Maus nur einschränken will, wenn die rechte Maustaste gedrückt ist, musste ich die Form immer ein und ausblenden, was allerdings zu spürbaren verzögerungen führte. |
Re: Verhindern, dass Objekte MouseOver-Event erhalten
Ich habe jetzt mal versucht, mit nem GetMsg-Hook die WM_MOUSEMOVE-Messages zu modifizieren, nur funktioniert das scheinbar nicht (jedenfalls nicht so, wie ich es mache :wink:):
Delphi-Quellcode:
function GetMsgProc(Code: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
var msg: ^TMsg; begin {...} msg := Pointer(lParam); if (msg^.message = WM_MOUSEMOVE) then begin msg^.wParam := 0; msg^.lParam := MakeWord(0, 0); end; end; |
Re: Verhindern, dass Objekte MouseOver-Event erhalten
HM, Welchen Anwendungszweck soll Dein Programm eigentlich haben ?
Warum soll jeman nicht mit der Maus arbeiten dürfen und was machst Du mit der Tastatur. Wenn Du ein unsichtbares Fenster über den Bildschirm gelegt hast, dann gehen auch die Tastatureingaben an dieses. Also es geht gar nichts... ???? /Martin |
Re: Verhindern, dass Objekte MouseOver-Event erhalten
Ich arbeite wieder einmal ein Gesture, einem Gestenerkennungsprogramm. Dabei zeichnet man bei gedrückter Maustaste irgendwo auf den Bildschirm. Wenn jedoch beim Zeichnen ein Highlight aktiviert wird, wird auch diese Stelle neu gezeichnet und dabei die gezeichnete Linie die auf dem Objekt liegt gelöscht.
|
Re: Verhindern, dass Objekte MouseOver-Event erhalten
@OrallY
Das MainMenu gehört übrigens zum NonClient-Bereich. Eventuell könnte man hier also auch mal mit den WM_NC...-Messages experimentieren, ala:
Delphi-Quellcode:
if (PMSG(lParam)^.message = wm_NCMouseMove)
and (PMSG(lParam)^.wParam = HTMenu) then windows.beep(1000,10); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz