Seite 2 von 2

Re: Direkt auf Desktop zeichnen

Verfasst: 16.07.2010 20:25
von NicTheQuick
Du kannst auch Teile deines Fensters transparent machen oder es an beliebigen Stellen sozusagen durchlöchern, dass man den Hintergrund hindurch sieht. Dann kannst du auch deine TopMostWindow-Variante verwenden und überall, wo noch nichts gezeichnet wurde das Fenster gar nicht erst anzeigen lassen, sodass man den Hintergrund noch sieht.

Suche dazu z.B. mal nach SetWindowRgn hier oder im englischen Forum.

Re: Direkt auf Desktop zeichnen

Verfasst: 19.07.2010 13:32
von bobobo
Es gibt per DirectX wohl die Möglichkeit direkt auf den Desktophintergrund zu rendern
der VLC-Player kann dort zumindest Videos darstellen.
da der QuelllCode des VLC verfügbar ist, könnte sich ein Interessent ja mal
da dranmachen sowas mit PB zu lösen .. /:-> .

guckmalemal das hier .. das malt "quasi" auf den Desktop und lässt die
Icons frei (nicht so richtig, aber so ähnlich)

Code: Alles auswählen

LoadFont(0,"",32)
Debug ElapsedMilliseconds()
Time$ = FormatDate("%hh:%ii",Date()-ElapsedMilliseconds()/1000+(3600*8))
ExamineDesktops()
w=DesktopWidth(0):h=DesktopHeight(0) ;
tw=30;428 ;textwidth (gemessen)
th=120 ;textheight(gemessen)
del=333
del=33
ro.l=235:go.l=80:bo.l=80
;r=82:g=111:b=bo
py=h-th
For i=0 To 30
FreeFont(0)
  LoadFont(0,"",Random(22)+10)
  hdc = GetWindowDC_(GetShellWindow_())
  SelectObject_(hdc,FontID(0))
  SetBkMode_(hdc,#TRANSPARENT)
  r=ro-20+Random(40):g=go-20+Random(40):b=bo-20+Random(40)
  px=Random(w-tw):py=h-th:py=Random(50)+(h-th-50);:py=h-th
  SetTextColor_(hdc,#Black)
  TextOut_(hdc,px+1,py+1,Time$,5)
  Select Random(2)
  Case 0
  SetTextColor_(hdc,#Yellow)
  Case 1
  SetTextColor_(hdc,#Red)
  Case 2
  SetTextColor_(hdc,#Green)
  EndSelect
  TextOut_(hdc,px,py,Time$,5)
  For iv=1 To 512
    InvalidateRect_(iv,0,0)   ;Soll den Rest bereinigen (iconebene was auch immer)
  Next iv
  del+33
  Debug del
  ReleaseDC_(GetShellWindow_(),hdc)
  Delay(del)
Next