XP에서 OpenTheMedata (Pparent, L“TextStyle”)가 실패하는 이유는 무엇입니까?
문제
테마 라이브러리를 사용하여 Windows Vista에서 절대적으로 잘 작동하는 텍스트를 그립니다. 이것은 내가 사용하는 코드입니다.
HTHEME hTheme = ::OpenThemeData(pParent, L"TEXTSTYLE");
HTheme은 Vista에서 유효하지만 Windows XP에서는 Null입니다.
문서를 읽었습니다 Openthemedata 그리고 부품 및 상태 MSDN에서는 텍스트 스타일이 XP에서 지원되지 않는다는 것을 언급하지 않습니다 (Google조차도 좋은 제안을하지 않습니다).
해결책
Luna 테마 (예 : XP로 배포 된 Microsoft-Made 테마)는 클래스의 하위 집합과 Aero의 일부만 정의합니다 (Windows Vista 및 7).
Windows XP 및 Vista (또는 7)가있는 기계에 액세스 할 수있는 경우 테마 탐색기 유틸리티에서 정의 된 내용을 미리 볼 수 있습니다.http://sourceforge.net/projects/mctrl/files/theme-explorer/
다른 팁
XP에서 여전히 테마가 켜져 있다고 가정합니까? "Bubblegum"모드를 끄면 클래식 룩으로 되돌려 놓은 경우, 테마 API가 모두 실패하고 레거시 API를 사용하여 프레임 요소를 그릴 것으로 예상됩니다. DrawFrameControl 등.
제휴하지 않습니다 StackOverflow