XP で OpenThemeData(pParent, L“TEXTSTYLE”) が失敗するのはなぜですか?
質問
テーマ ライブラリを使用してテキストを描画していますが、Windows Vista ではまったく問題なく動作しますが、Windows XP では返される HTHEME は NULL です。これは私が使用しているコードです:
HTHEME hTheme = ::OpenThemeData(pParent, L"TEXTSTYLE");
hTheme は Vista では有効ですが、Windows XP では NULL です。
のドキュメントを読みました オープンテーマデータ そして 部品と状態 MSDN にありますが、TEXTSTYLE が XP でサポートされていないことについては何も言及されていません (Google でさえ適切な提案を表示しません)。
解決
テーマ「ルナ」(すなわち、XP とともに配布される Microsoft 製のテーマ) は、Aero (Windows Vista および 7) のクラスと一部のサブセットのみを定義します。
Windows XP および Vista (または 7) を搭載したマシンにアクセスできる場合は、テーマ エクスプローラー ユーティリティで定義されている内容をプレビューできます。http://sourceforge.net/projects/mctrl/files/theme-explorer/
他のヒント
XPではまだテーマがオンになっていると思いますか?「バブルガム」モードをオフにしている場合、つまりクラシックな外観に戻すと、テーマ API はすべて失敗し、従来の API を使用してフレーム要素を描画することになります。 DrawFrameControl 等
所属していません StackOverflow