我正在尝试COLORREF
使用以下代码以格式获取默认的 Windows 系统背景颜色:
LOGBRUSH lb;
GetObject((HANDLE)(COLOR_BACKGROUND), sizeof(LOGBRUSH), &lb);
BG_COLOR = lb.lbColor;
char buff[250];
sprintf(buff, "BG_COLOR: 0x%08X;", BG_COLOR);
MessageBoxA(0, buff, "Alert!", MB_OK | MB_SYSTEMMODAL);
但它在设置 Window 的类时返回红色0x003E28F4
,如下所示:hbrBackground
(HBRUSH)COLOR_BACKGROUND
WndClass.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
窗口的背景颜色显示为灰色(在 WinXP 上),带有十六进制0x00C8D0D4
(用 gimp 检查)。
据我所知,0x003E28F4
和0x00C8D0D4
不一样
这是什么原因造成的?如何获得 RGB/COLORREF 格式的默认背景颜色?