2009-11-05 12 views
10

Próbuję zrobić aplikację, która musi rysować na pulpicie, za ikonami, aby zastąpić tapetę pulpitu. Znalazłem kilka rozwiązań tego problemu, ale większość z nich nie działała zbyt dobrze (dużo migotania). Jedno rozwiązanie seems to be what I'm looking for, ale tak naprawdę to nie rozumiem. Zrobiłem głównie aplikacje C# przy użyciu bibliotek graficznych wyższego poziomu lub tylko Windows Forms i trochę C++, ale tylko na platformach innych niż Windows.Rysowanie na pulpicie jako zamiennik tapety (Windows/C#)

Jeśli ktokolwiek mógłby "przetłumaczyć" to dla mnie lub dostarczyć mi alternatywne rozwiązanie, byłoby to bardzo cenne!

Odpowiedz

7

nigdy nie znalazłem rozwiązanie chciałem, ale tutaj są najlepsze (tylko?) Alternatywy:

  • zwrócić oknie "SysListView32" (Progman -> SHELLDLL_DefView -> SysListView32). Spowoduje to rysowanie za ikonami pulpitu, ale będzie migać, gdy zostanie użyta animacja. How to: Link (będziesz musiał użyć współdziałania w .NET).

  • Użyj nakładek DirectDraw. Ustawiasz kolor pulpitu na pewien niejasny kolor i wszystko z tym kolorem zostanie zastąpione tym, co jest na nakładce. Jest to używane w przykładzie na moim pytaniu oraz w trybie tapety VLC. Jest to jednak niezgodne z Aero. How to: Link (Chyba mógłbyś używać Managed DirectX w .NET?).

+0

Jakieś wieści na ten temat? – Ampere

+0

Niestety nie, o ile mi wiadomo. Poddałem się temu, co próbowałem zrobić, wydaje się, że nie jest to możliwe. – nardi

+2

To jest bardzo późno, ale udało mi się to zrobić za pomocą tego [link] (http://www.codeproject.com/Articles/856020/Draw-Behind-Desktop-Icons-in-Windows). – Clark

0

Tak, we współpracy, zobacz temat this wątek.

+0

Który będzie rysował na szczycie wszystkiego; Szukam za wszystkim (poza tapetą pulpitu). – nardi

1

Możesz znaleźć inspirację w kodzie odtwarzacza multimediów VLC. jest wallpaper mode, który robi to, czego szukasz.

0

widziany na to pytanie w przelocie i nie częściowo rozwiązać problem (ale nie w taki sposób mogę dać żadnej użytecznej kod), aby zrobić kilka fajnych gier, choć może nie mieć aplikację, która ma:

  • Ustaw tło pulpitu z powrotem do normalnego stanu i zrzut ekranu pulpitu
  • Ustaw tło pulpitu czarny i zrzut ekranu pulpitu
  • Ustaw białe tło pulpitu i zrzut ekranu pulpitu
  • Połączyć wersje czarno-białe, aby utworzyć maskę i pierwszy zrzut ekranu jako wartości pikseli pikseli nakładki, które są różne przezroczyste.

Teraz na formularzu wyciągnąć następujące w kolejności:

  1. narysować pierwszy zrzut ekranu
  2. Narysuj swoją postać rzeczy
  3. Draw utworzony

nakładkę na pulpicie to co zrobiłem w przypadku pełnoekranowego formularza, ale można go łatwo zaadaptować do form nie pełnoekranowych. Zasadniczo odtworzyłeś pulpit, ale z możliwością zrobienia z nim wszystkiego, łącznie z fajnymi grami. Szybkość i wydajność drawów jest zadowalająca dla każdej aplikacji, ale interaktywność na pulpicie to problem ... :(Tutaj znajduje się rysunek z gry czołgów, z tą różnicą, że ustawiłem białe tło i uczyniłem białe tło przezroczystym!

My Tanks Game