Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Transparente Main Form auf Desktop bringen (https://www.delphipraxis.net/119771-transparente-main-form-auf-desktop-bringen.html)

sibbl 31. Aug 2008 12:31


Transparente Main Form auf Desktop bringen
 
Hallo,

Ich habe eine transparente Main Form und möchte diese auf den Desktop bringen (wenns geht hinter die Icons, davor ist aber auch nicht schlimm). D.h. sie soll dann von jedem Fenster überdeckt werden - eben wie als würde sie zum Hintergrundbild gehören (below all).

Ok hab ich mir gedacht, nimmste FindWindow, suchst den Desktop und setzt die hwnd als parentwindow deiner Form. Hat auch geklappt, nur ist dann die Transparenz weg (und es ist vor den Icons ... aber wie gesagt, nit schlimm).

Habt ihr noch ein paar Tips, wie ich das noch realisieren kann (Delphi 2007)?



Bin für jede Antwort dankbar!

mfG
Sebastian

toms 31. Aug 2008 13:22

Re: Transparente Main Form auf Desktop bringen
 
Hallo,

Ich hab's unter WinXP wie folgt ausprobiert und die Transparenz ist geblieben.

Delphi-Quellcode:
procedure SetWinToDesktop(Handle: HWND);
var
  wndDesktop: HWND;
begin
  wndDesktop := FindWindow('Progman','Program Manager');
  if wndDesktop <> 0 then
  begin
     Windows.SetParent(Handle, wndDesktop)
  end;
end;

// Aufruf:
SetWinToDesktop(Self.Handle);

sibbl 31. Aug 2008 19:45

Re: Transparente Main Form auf Desktop bringen
 
http://sibbl.pytalhost.de/pix/Window...0699129a28.png

hm ne sieht leider nich so erfolgreich aus :( Aber danke dir für die Antwort!

toms 31. Aug 2008 19:53

Re: Transparente Main Form auf Desktop bringen
 
Dem Screenshot kann man aber nicht entnehmen, um was für ein OS sich handelt...

sibbl 31. Aug 2008 19:55

Re: Transparente Main Form auf Desktop bringen
 
Sorry, es handelt sich um Vista. Liegt vielleicht daran, dass ich einen anderen Code für die Transparenz nutze, als du ...


EDIT: Unter XP gehts komischerweise :shock: Ich kenn mich zwar mit der Programmierung von Vista gut aus, aber was ist da bei Vista anders als bei XP?? Ich führe es als Administrator aus und es hat volle Rechte

EDIT2: Unter Vista mit deaktiviertem Aero gehts. Liegt das daran, dass im Aero-Modus alles mit DX9 gerendert wird, auch wenns GDI+ ist?

sibbl 1. Sep 2008 16:00

Re: Transparente Main Form auf Desktop bringen
 
kann das hier evtl. jemand auf Delphi beziehen? :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 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