Taskleiste neu zeichnen

  • Nach so vielen Stunden Frust brauch ich mal einen Profi:

    ich will die Taskleiste neu zeichnen nachdem ich mit dem GDI drauf gezeichnet habe.
    Bei allen anderen Fenstern tut es eine WM_paint nur bei der Taskleiste und dem Desktop nicht.
    Was ist zu tun?



    Gruß

    Blues


    PS: Warum bekomme ich keine Email-Benachrichtigungen wenn auf eins meiner Themen geantwortet wird, obwohl ich dass schon 3x eingestellt habe?

  • Hallo i2c,

    Ja und Nein. Mit dem 0-Handle zeichnet er eben auf das Fenster, das gerade an der betreffenden Stelle ist.

    Das Problem ist einfach dass es in GDI keinen Radiergummi gibt. Sondern es muss natürlich der Hintergrund neu gezeichnet werden (wie in der Computergrafik allgemein).
    Aber genau dazu kann ich die Taskleiste nicht bewegen

    Ich hab nur Notlösungen:

    - etwa einen Tooltip kurz drüber blenden oder ein GUI-Fenster
    - Taskleiste einblenden und wieder ausblenden ( geht gar nicht!)

    Ich hoffe hier hat noch jemand was in Peto?

    viele Grüße

  • Nachtrag: der geneigte Benutzer kann gern einmal das hier ausführen, und versuchen seine Taskleiste vollständig wiederzubekommen:

    Code
    #include <GDIPlus.au3>
    _GDIPlus_Startup()
    $hWnd 	= WinGetHandle( "classname=Shell_TrayWnd"  )
    $hDC  	= _WinAPI_GetWindowDC(  $hWnd )
    $hGraphic = _GDIPlus_GraphicsCreateFromHDC( $hDC )
    _GDIPlus_GraphicsClear( $hGraphic )
  • Das ist mir durchaus klar. Ich wollte dich auch nur in die Richtung stossen, von deinem Vorhabe die Taskleiste neu zu zeichnen, abzulassen.

    Du zeichnest nicht auf ihr, als bastel nicht an ihr rum. Ausserdem würde es ja so oder so nicht viel bringen, wenn dann bei jemand anderem die Taskleiste oben oder was weiss ich wo ist.

    Wenn du irgendwo was drüberblenden willst, das du nach Möglichkeit ändern oder löschen willst, dann denk vielleicht mal an eine transparente GUI. Darauf kannst du dann mit GDIP rumpinseln soviel und so lange du willst. Oder sie halt löschen ;)

  • Das Handle bekommt man übriegens so

    [autoit]

    WinGetHandle("[CLASS:Shell_TrayWnd]")

    [/autoit]


    Und mach mal deine Tastatur ein wenig sauber, anscheinend hängt deine Space-Taste.

  • i2c genau der Anstoß den ich gebraucht habe :)

    Wenngleich die Schrift nun etwas unschärfer wirkt (vielleicht Kantenglättung?).

    Hab vielen Dank!


    @m-obi

    Space klemmt nicht, ich bin nur ein Freund des luftigen Codes das kommt dem grafischen Denken entgegen. :)


    Gruß

    Blues