¿Por qué OpenThemeData (pParent, L “TEXTSTYLE”) falle en XP?
Pregunta
Estoy usando la biblioteca del tema para dibujar un texto que funciona absolutamente bien en Windows Vista - sin embargo, en Windows XP el HTHEME devuelto es NULL. Este es el código que estoy usando:
HTHEME hTheme = ::OpenThemeData(pParent, L"TEXTSTYLE");
hTheme es válido en Vista, pero NULL en Windows XP.
He leído la documentación de OpenThemeData y Partes y Estados en MSDN, pero nada se menciona que TEXTSTYLE no es compatible con XP (incluso google no vomitar alguna sugerencia buena).
Solución
El tema Luna (es decir, el tema hecho a Microsoft distribuido con XP) define solamente subconjunto de clases y partes de Aero (Windows Vista y 7).
Si usted tiene acceso a las máquinas con Windows XP y Vista (o 7), puede obtener una vista previa de lo que está definido por la utilidad Explorador Tema: http://sourceforge.net/projects/mctrl/files/theme-explorer/
Otros consejos
Me presumir que en XP todavía tiene tematización encendido? Si ha desactivado el modo "chicle" - es decir, vuelto al aspecto clásico, a continuación, las API Theming todos fallan y estás espera que utilizar las API de legado para dibujar los elementos del bastidor. DrawFrameControl etc.