AnimateWindow funktioniert nicht mit Vista Aero Design



  • Ich benutze AnimateWindow um ein Toolfenster animiert zu öffnen. Das Ganze funktioniert auch recht gut.

    Jedoch ist mir aufgefallen dass das Ganze unter Vista mit dem Aero Design nicht mehr so funktioniert wie es sollte. Denn AnimateWindow zeichnet da zuerst die Non Client Area und animiert dann die Client Area. Schalte ich das Design auf Klassisch um funktioniert AnimateWindow wie normal. Kennt jemand die Ursache des Fehler's ?

    Da mir aber eh nicht so viel an dem Aero Design liegt, wollte ich eher mal nachfragen ob jemand eine Möglichkeit kennt, das Fensterdesign auf die klassische Darstellung festzulegen.



  • Mit AnimateWindow() habe ich mich noch nie beschäftigt, da muß ich passen...

    Aber was klassische Darstellung betrifft, da kann ich Dir helfen:

    //** Windows XP bzw. Vista Theme (Visual Style) deaktivieren **
    SetThemeAppProperties( 0 );
    hwnd_window = CreateWindow( ... );
    SetWindowTheme( hwnd_window, L" ", L" " );  //Jeweils ein Leerzeichen!
    

    (die obligatorischen Fehlerabfragen sind entfernt)

    Damit kannst Du das Theming Deiner Applikation ausschalten.
    (Nur für Deine Applikation, die systemweite Einstellung sollte tunlichst nicht manipuliert werden, das mögen die wenigsten User... 🙄 )

    HTH,
    Martin



  • Damit kannst Du das Theming Deiner Applikation ausschalten. (Nur für Deine Applikation, die systemweite Einstellung sollte tunlichst nicht manipuliert werden, das mögen die wenigsten User... 🙄 )

    Das mache ich auch nicht, denn sonst würden mich wohl einige Leute steinigen 😃

    SetThemeAppProperties macht genau das was ich haben möchte. Der Style ist weg und Animatewindow funktioniert wieder. Aber leider ist durch die Funktion der Fenstertitel um schätungsweise eine halbe Schrifthöhe nach unten gefallen so dass ich nur die obere Hälfte des Fenstertitel sehe. Ich werde dazu mal noch ein wenig in der Doku zu "uxtheme.h" herumstöbern.

    Danke für deine Hilfe. 👍



  • Das Problem mit dem Fenstertitel liegt wohl an der CreateWindowEx() Funktion. Wenn da dwExStyle gleich WS_EX_TOOLWINDOW ist, kommt es wie besprochen zu dem Problem das der Fenstertitel um eine halbe Schrifthöhe nach unten versetzt ist. Setze ich dwExStyle auf 0 ist alles in Ordnung.


Log in to reply