Rubrik: System/Windows · Desktop/Bildschirm/Display | VB-Versionen: VB4, VB5, VB6 | 06.01.02 |
WindowsXP - Welches Theme ist aktiv? Zwei Funktionen mit denen sich ermitteln lässt, welches Theme eingestellt ist bzw. um zwischen den beiden Standard-Themes umzuschalten. | ||
Autor: Wolfgang Kluge | Bewertung: | Views: 15.305 |
www.vbwelt.de | System: WinXP, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wer mal Windows®XP gesehen hat, der wird bestätigen können, dass die Designänderungen als primäres Merkmal mehr als stark herausstechen. Nun mag man sich über Sinn und Unsinn einer solcher Änderungen streiten können (so etwas in dieser Atr gab es ja mit dem Plus-Pack schon seit Win95 - und da wurde gestritten *g*). Fakt ist, dass viele User die Standardeinstellung des Desktopdesigns bestehen lassen, und viele andere diese Einstellung wissentlich beibehalten.
Nun kann es ja vorkommen, dass ein Programm die Grundeinstellung ändern will. Aus welchen Gründen auch immer ;) Und dazu gibt es eine ganze Reihe von Funktionen, alle definiert in der Theme-API.
Zwei der wesentlichsten all dieser Funktionen werden heute vorgestellt.
' Deklarationen Private Declare Function EnableTheming Lib "UxTheme.dll" ( _ ByVal fEnable As Boolean) As Long Private Declare Function IsThemeActive Lib "UxTheme.dll" () As Long
Wie so oft bin ich wegen der hohen Selbstaussage der Funktionen in Erklärungsnot ;).
Mit der EnableTheming-Funktion wird nichts anderes erreicht, als ein Umschalten zwischen "Windows XP-Stil" (bzw. aktuellem Stil) und "Windows - klassisch" in der Dialogfeld-Anzeige der Systemsteuerung (Tab Design oder Darstellung).
Mit der 2. Funktion wird genau dies abgefragt. Es geht bei beiden Funktionen nur ums Grundsätzliche: Also Theme-Support oder nicht.
Da man nun damit den Users ganz schön ärgern kann, würde ich Ihnen nahelegen, die Einstellung entweder nur auf Nachfrage durchzuführen, oder aber am Ende des Programms die ursprüngliche Einstellung zurückzusetzten... Ansonsten landet Ihr Programm wahrscheinlich als "gefährdete Art" schnell im Mülleimer.
' Aktuelle Einstellung auslesen ' "Windows XP-Stil" oder "Windows - klassisch" If IsThemeActive <> 0 Then MsgBox "Windows - XP-Stil" Else MsgBox "Windows - klassisch" End If
' Einstellung ändern EnableTheming False ' Windows - klassisch setzen EnableTheming True ' Windows XP-Stil setzen