![]() |
Anklickbares, unsichtbares Fenster
Hi,
Ist es irgendwie möglich ein Fenster zu erstellen, das unsichtbar ist, aber trotzdem die WM_LBUTTONDOWN/WM_LBUTTONUP Message zu empfangen? Ich bräuchte sowas :? Gruß Neutral General |
Re: Anklickbares, unsichtbares Fenster
Die einzige Möglichkeit die mir einfallen würde ist ein Maushook, bei dem du prüfst, ob der Klick in deinem Fenster war.
|
Re: Anklickbares, unsichtbares Fenster
Hi,
Ja an sowas in der Art dachte ich auch schon. Allerdings würde das mein Vorhaben sinnlos machen :mrgreen: Also was ich vorhabe, bzw mal probieren wollte ist folgendes. Nachdem ich ![]() Von daher nutzt es mir nichts wenn ichs jetzt mit nem Hook löse :mrgreen: |
Re: Anklickbares, unsichtbares Fenster
Hey,
das sollte gehen, wenn du das Fenster mit folgender Prozedure Transparent zeichnest:
Delphi-Quellcode:
procedure MakeWindowTransparent(Wnd: HWND; Alpha: Byte);
const WS_EX_LAYERED = $80000; LWA_ALPHA = $02; type TSetLayeredWindowAttributes = function(const hWnd: HWND; crKey: Integer; bAlpha: Byte; dwFlags: Integer) : Integer; stdcall; var SetLayeredWindowAttributes : TSetLayeredWindowAttributes; User32DLL : THandle; begin User32DLL := LoadLibrary('User32.dll'); if User32DLL <> 0 then begin @SetLayeredWindowAttributes := GetProcAddress(User32DLL, 'SetLayeredWindowAttributes'); if @SetLayeredWindowAttributes <> nil then begin SetWindowLong(Wnd, GWL_EXSTYLE, GetWindowLong(Wnd, GWL_EXSTYLE) or WS_EX_LAYERED); SetLayeredWindowAttributes(Wnd, 0, Alpha, LWA_ALPHA); end; end; FreeLibrary(User32DLL); end; und dann auf die Messages reagierst! Aufrufen musst du die Funktion dann so:
Delphi-Quellcode:
MakeWindowTransparent(DeinFensterhandle,1);
//Ob es auch mit 0 geht weiß ich nciht musst du ausprobieren... //das währe dann wirklich unsichtbar |
Re: Anklickbares, unsichtbares Fenster
Klar geht das, AlphaBlend auf Ture und AlphaBlendValue auf 1 (oder sogar null).
|
Re: Anklickbares, unsichtbares Fenster
Zitat:
Und scheinbar funktioniert MakeWindowTransparent nicht mit diesen Fenstern :gruebel:
Delphi-Quellcode:
// Nur eine Test-Methode!
procedure THandleSprite.Apply; begin SetParent(Fhandle,Form1.Handle); SetWindowPos(FHandle,HWND_BOTTOM,0,0,Round(Width),Round(Height),0); ShowWindow(FHandle,SW_SHOW); MakeWindowTransparent(FHandle,1); end; |
Re: Anklickbares, unsichtbares Fenster
@ N.G. Da waren die anderen Beiträge noch nicht da...
Ich würde die Sprides & Mousepos. errechnen, das ist schneller und sauberer als dieses Kuddelmuddel mit unsichtbaren Fenster, Hooks etc. (Gesausogut könnte man flacker TImages verschieben :stupid: :snowball: ) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 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