C # Set vinduet bak skrivebordsikoner

stemmer
3

Anta jeg har en tom skjema 100 piksler ved 100 piksler på 0,0 koordinater på skjermen. Det har ingen grense stil. Er det noen måte å få dette plassert bak skrivebordsikoner?

Jeg vil anta at dette ville innebære prosessen Progman fordi dvs hva inneholder skrivebordsikoner. Men uansett hva jeg prøver ... får vridere og skiftende foreldre etc, kan jeg synes å få vinduet til å vises bak ikonene.

Noen ideer?

Publisert på 30/12/2009 klokken 00:20
kilden bruker
På andre språk...                            


3 svar

stemmer
1

Google-fu ledet meg til dette MSDN forumet spørsmål:

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

Og dette er et blogginnlegg hensyn de store fallgruvene med hjelp GetDesktopWindow () eller arbeider med skrivebordet håndtak (som per andre spørsmålet: C # Beliggenhet vindu på skrivebordet )

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

Du kan heller ikke ønsker å passere GetDesktopWindow () som hWndParent. Hvis du oppretter et underordnet vindu som forelder er GetDesktopWindow (), er vinduet nå limt til skrivebordet vinduet. Hvis vinduet kaller deretter noe sånt messagebox (), vel det er en dialog modal, og deretter reglene ovenfor spark i og skrivebordet blir deaktivert og maskinen er toast.

Uansett, jeg mistenker at det sannsynligvis kan gjøres, men om du skal er et annet spørsmål.

Svarte 30/12/2009 kl. 00:38
kilden bruker

stemmer
3

Hovedsak du ønsker å trekke på skrivebordet bakgrunnen . Skrivebordet hierarki ser slik ut:

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

Det er det SysListView32som faktisk trekker skrivebordsikoner, så det er hva du har å hekte. Og du kan ikke bare stikke skjemaet på toppen av det; du må ta en WindowDCtil at håndtak og trekke på DC.

Det kan gjøres - det har blitt gjort, men du kommer til å bruke mye av interoperabilitet. Glem om å gjøre dette med en tradisjonell Winforms Form. Jeg tror ikke jeg har selv sett det gjort i C #, selv om noen gjorde det i python , om det hjelper. Jeg er ikke en python coder meg selv, men koden er ganske kort og lett å forstå.

Svarte 30/12/2009 kl. 00:47
kilden bruker

stemmer
2

Det er en løsning på dette problemet, i hvert fall for Windows 8. Jeg Postet det i form av en artikkel på CodeProject, slik at du kan lese om det her:

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

Dette fungerer for enkel tegning, Windows Forms, WPF, DirectX, etc. Løsningen presenteres i denne artikkelen er bare for Windows 8.

Svarte 23/12/2014 kl. 09:01
kilden bruker

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