C # Set Fenster hinter Desktop Icons

stimmen
3

Es sei angenommen, ich habe eine leere Form von 100 Pixel 100 Pixel bei 0,0 Koordinaten auf dem Bildschirm. Es hat keine Grenze Stil. Gibt es eine Möglichkeit, dies hinter den Desktop-Icons positioniert haben?

Ich würde davon ausgehen, das den Prozess Progman bedeuten würde, weil das ist, was den Desktop-Icons enthält. Aber egal, was ich versuche, ... immer Fenstergriffe und Ändern Eltern usw., kann ich nicht scheinen, das Fenster zu bekommen hinter den Symbolen zu erscheinen.

Irgendwelche Ideen?

Veröffentlicht am 30/12/2009 um 03:20
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
1

Google-fu führte mich in diesem Forum Frage MSDN:

http://social.msdn.microsoft.com/Forums/en/winformsdesigner/thread/c61d0705-d9ec-436a-b0a6-6ffa0ecec0cc

Und das ist ein Blog - Post hinsichtlich der großen Gefahren bei der Verwendung von GetDesktopWindow () oder der Umgang mit dem Desktop Griff (wie pro Ihre andere Frage: C # Position Fenster auf dem Desktop )

http://blogs.msdn.com/oldnewthing/archive/2004/02/24/79212.aspx

Sie will auch nicht GetDesktopWindow () als hwndParent passieren. Wenn Sie ein Kind Fenster, dessen Eltern schaffen GetDesktopWindow (), wird das Fenster nun auf dem Desktop-Fenster geklebt. Wenn Ihr Fenster dann so etwas wie MessageBox () nennt, auch das ist ein modaler Dialog, und dann über Kick der Regeln in und der Desktop wird deaktiviert und die Maschine ist Toast.

Wie auch immer, ich vermute, dass es wahrscheinlich getan werden kann, aber ob Sie sollten eine andere Frage.

Beantwortet am 30/12/2009 um 03:38
quelle vom benutzer

stimmen
3

Im Grunde wollen Sie auf dem Desktop ziehen Tapete . Die Desktop - Hierarchie sieht wie folgt aus :

"Program Manager" Progman
  "" SHELLDLL_DefView
    "FolderView" SysListView32

Es ist der , SysListView32dass die Desktop - Icons tatsächlich zieht, so dass das , was Sie Haken haben. Und Sie können nicht nur halten Ihre Form auf ihn; Sie müssen eine greifen , WindowDCdass Griff und auf der DC zu ziehen.

Es kann getan werden - es ist getan worden, aber Sie werden eine Menge Interop werden. Vergessen Sie tun dies mit einem traditionellen WinForms - Formular. Ich glaube nicht , habe ich selbst es in C # getan gesehen, obwohl jemand es in tat Python , ob das hilft. Ich bin kein Python - Coder mich, aber der Code ist ziemlich kurz und leicht zu verstehen.

Beantwortet am 30/12/2009 um 03:47
quelle vom benutzer

stimmen
1

Es gibt eine Lösung für dieses Problem, zumindest für Windows 8. Ich postet es in Form eines Artikels auf Codeproject, so Sie es hier lesen:

http://www.codeproject.com/Articles/856020/Draw-behind-Desktop-Icons-in-Windows

Dies funktioniert für einfache Zeichnung, Fenster bilden, wpf, directx, usw. Die Lösung in diesem Artikel vorgestellt ist nur für Windows 8.

Beantwortet am 23/12/2014 um 11:01
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more