Perché OpenThemeData (pParent, L “TEXTSTYLE”) fallire su XP?
Domanda
Sto usando la libreria tema di trarre un testo che funziona assolutamente bene su Windows Vista - tuttavia, in Windows XP il HTHEME restituito è NULL. Questo è il codice che sto usando:
HTHEME hTheme = ::OpenThemeData(pParent, L"TEXTSTYLE");
hTheme è valido su Vista, ma NULL su Windows XP.
Ho letto la documentazione per OpenThemeData e noreferrer parti e gli stati su MSDN, ma nulla menziona che TEXTSTYLE non è supportato su XP (anche Google non vomitare qualche suggerimento buono).
Soluzione
Il tema Luna (vale a dire il tema Microsoft-made distribuito con XP) definisce solo sottoinsieme di classi e parti di Aero (Windows Vista e 7).
Se si ha accesso a macchine con Windows XP e Vista (o 7) si può vedere in anteprima quello che è definito dal programma di utilità Tema Explorer: http://sourceforge.net/projects/mctrl/files/theme-explorer/
Altri suggerimenti
I presumere che su XP avete ancora tematizzazione acceso? Se è stata attivata la modalità "bubblegum" - vale a dire ripristinato il look classico, quindi le API Theming tutti falliscono e tu sei prevede di utilizzare le API legacy per disegnare gli elementi del telaio. DrawFrameControl etc.