0

我正在尝试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 检查)。

据我所知,0x003E28F40x00C8D0D4不一样

这是什么原因造成的?如何获得 RGB/COLORREF 格式的默认背景颜色?

4

1 回答 1

3

你不应该使用GetSysColor(COLOR_BACKGROUND)

http://msdn.microsoft.com/en-gb/library/windows/desktop/ms724371(v=vs.85).aspx

于 2013-03-08T17:10:20.473 回答