3

Windows 8でアクティブなウィンドウのキャプションカラーを取得するにはどうすればよいですか?

電話をかけてみましたGetSysColor(COLOR_ACTIVECAPTION)が、色が違います。Windows 7では正しく動作するので、これは奇妙なことです。アクティブウィンドウのキャプションカラーまたはタスクバーのカラーを取得する他の方法はありますか?

4

1 に答える 1

2
DWORD WINAPI GetSysColor(
 _In_  int nIndex
 );

GetSysColor()関数の場合、パラメーターnIndexが範囲外の場合、戻り値はゼロです。ゼロも有効な RGB 値であるためGetSysColor()、システム カラーが現在のプラットフォームでサポートされているかどうかを判断するために使用することはできません。代わりに、色がサポートされていない場合GetSysColorBrush()に返される関数を使用してください。NULL

クリックすると、構文と使用法が表示されます。

別のオプションは、ガラス合成DwmGetColorizationColor()に使用されている現在の色を取得できる関数を使用することです。Desktop Window Manager (DWM)この値は現在の配色に基づいており、ユーザーが変更できます。WM_DWMCOLORIZATIONCOLORCHANGEDアプリケーションは、通知を処理することで色の変化をリッスンできます。

HRESULT WINAPI DwmGetColorizationColor(
  _Out_  DWORD *pcrColorization,
  _Out_  BOOL *pfOpaqueBlend
);
于 2012-12-05T08:31:07.547 に答える