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