Warum OpenThemeData (pParent, L „TEXTSTYLE“) auf XP scheitern?
Frage
Ich bin mit dem Thema Bibliothek, um einen Text zu ziehen, die auf Windows Vista absolut einwandfrei funktioniert - allerdings unter Windows XP die zurück HTHEME NULL ist. Dies ist der Code, den ich mit:
HTHEME hTheme = ::OpenThemeData(pParent, L"TEXTSTYLE");
hTheme ist gültig auf Vista, aber NULL unter Windows XP.
Ich habe die Dokumentation zu lesen für OpenThemeData und Teile und Staaten auf MSDN, aber nichts erwähnt, dass nicht auf TEXTSTIL XP unterstützt wird (auch Google keine guten Vorschläge werfen).
Lösung
Das Thema Luna (das heißt das Microsoft-made-Thema mit XP verteilt) definiert nur Teilmenge der Klassen und Teile von Aero (Windows Vista und 7).
Wenn Sie Zugriff auf Maschinen mit Windows XP und Vista (oder 7) können Sie eine Vorschau von Theme Explorer Dienstprogramm definiert ist: http://sourceforge.net/projects/mctrl/files/theme-explorer/
Andere Tipps
Ich nehme an, auf XP Sie noch Thematisierung eingeschaltet haben? Wenn Sie off „Bubblegum“ Modus eingeschaltet haben - das heißt auf den klassischen Look zurückgekehrt, dann werden alle Theming APIs fehlschlagen und youre erwartet, dass die Legacy-APIs verwenden, um die Rahmenelemente zu zeichnen. DrawFrameControl etc.