システムのトレイエリアクロックのビジュアルテーマはMSDNに文書化されているため、Microsoftはそれを使用できることを期待していると思います。トレイ領域との調和を良くするために、タスクバーバンドの背景を描画するために使用したいと思います。私がしようとすると
OpenThemeData(NULL、L "CLOCK");
常に失敗します。そのテーマを取得するために私が見つけた唯一の方法は、実際の時計ウィンドウを見つけて、そのテーマを要求することです。
を使用
FindWindowEx
して、クラスのあるウィンドウを検索しShell_TrayWnd
、次にその子をクラスで検索しTrayNotifyWnd
、次にこのウィンドウの子をTrayClockWClass
クラスで検索します。OpenThemeDataを呼び出し、実際の時計のウィンドウハンドルを渡します。
明らかに、内部のWindowsウィンドウクラス名は文書化されていません。上記の方法はうまくいくように見えますが、私はむしろ壊れにくいものを使用したいと思います。
質問:トレイエリアの時計のビジュアルテーマを取得するための正しい方法はありますか?