Pergunta

Eu estou usando a biblioteca tema para desenhar algum texto que funciona perfeitamente bem no Windows Vista - no entanto, no Windows XP a HTHEME retornado é NULL. Este é o código que estou usando:

HTHEME hTheme = ::OpenThemeData(pParent, L"TEXTSTYLE");

hTheme é válido no Vista, mas NULL no Windows XP.
Eu li a documentação para OpenThemeData e noreferrer Peças e Estados no MSDN, mas nada menciona que TEXTSTYLE não é suportado no XP (mesmo O Google não vomitar alguma sugestão boa).

Foi útil?

Solução

O Luna tema (ou seja, o tema Microsoft-made distribuído com XP), apenas define subconjunto de classes e partes de Aero (Windows Vista e 7).

Se você tem acesso a máquinas com Windows XP e Vista (ou 7), você pode visualizar o que está definido pela utilidade Tema Explorer: http://sourceforge.net/projects/mctrl/files/theme-explorer/

Outras dicas

Eu presumo que no XP você ainda tem theming ligado? Se você tiver ativado o modo "chiclete" - ou seja revertido para o visual clássico, então as APIs Theming tudo falhar e você é esperado para usar as APIs de legado para desenhar os elementos do quadro. DrawFrameControl etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top