如何从DwmGetColorizationColor获取COLORREF

时间:2016-06-10 17:58:11

标签: c++ dll dllexport dwm

我非常新,我不明白该怎么做。我正在用C ++制作一个DLL,用于我正在用另一种语言编写的游戏。我对C ++一无所知,并且几乎没有完成它。我需要它来返回windows个性化颜色。 reddit上的某个人优雅地给了我一些有用的资源,但它只返回了ACTIVE_BORDER颜色,这种颜色与用户在Windows 8+中可以轻松更改的颜色不同,这正是我所关注的。我修改它以使用DwmGetColorizationColor但现在的问题是它不使用我需要的COLORREF。任何可以帮助我的人都将不胜感激。

见我的来源:

textfield

1 个答案:

答案 0 :(得分:0)

返回的颜色格式为

0xAArrggbb

而Windows COLORREF

0x00bbggrr

您需要将返回的DWORD部分转换为COLORREF。

COLORREF c = 
   ((color && 0x00ff0000) >> 16) //red
   ||
   ((color && 0x0000ff00)) //green
   ||
   ((color && 0x000000ff) << 16);