如何在Windows 8中获取活动窗口的标题颜色?
我试图调用GetSysColor(COLOR_ACTIVECAPTION)
,但它会返回不同的颜色。这很奇怪,因为在Windows 7中它可以正常工作。有没有其他方法可以获取活动窗口的标题颜色或任务栏的颜色?
答案 0 :(得分:2)
DWORD WINAPI GetSysColor(
_In_ int nIndex
);
对于GetSysColor()
函数,如果nIndex
参数超出范围,则返回值为零。由于零也是有效的RGB值,因此无法使用GetSysColor()
来确定当前平台是否支持系统颜色。相反,使用GetSysColorBrush()
函数,如果不支持颜色,则返回NULL
。
Click to see the syntax and usage.
另一种选择是使用DwmGetColorizationColor()
功能,该功能可以检索用于Desktop Window Manager (DWM)
玻璃成分的当前颜色。此值基于当前颜色方案,可由用户修改。应用程序可以通过处理WM_DWMCOLORIZATIONCOLORCHANGED
通知来监听颜色更改。
HRESULT WINAPI DwmGetColorizationColor(
_Out_ DWORD *pcrColorization,
_Out_ BOOL *pfOpaqueBlend
);