尝试使用GetObject();获取默认背景色
Trying to get default background color with GetObject();
我试图获得默认的Windows系统背景颜色在COLORREF
格式与此代码:
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);
但是它返回0x003E28F4
,这是红色,同时设置一个窗口的类hbrBackground
为(HBRUSH)COLOR_BACKGROUND
,像这样:
WndClass.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
窗口的背景色显示为灰色(在WinXP上)十六进制0x00C8D0D4
(使用gimp检查)。
据我所知,0x003E28F4
和0x00C8D0D4
是不一样的
是什么原因造成的?如何获得RGB/COLORREF格式的默认背景色?
你不应该使用GetSysColor(COLOR_BACKGROUND)
http://msdn.microsoft.com/en-gb/library/windows/desktop/ms724371 (v = vs.85) . aspx
相关文章:
- 具有默认值的引用获取函数
- 如何获取当前用户的默认RAS电话簿路径?
- 从指针访问值或获取其默认值(如果为 null)的最干净方法
- 通过 constexpr 获取默认值
- 如何在QT中获取Windows默认文件夹的本地名称
- 获取打开文件名在默认目录打开'Computer'可能吗?
- 设置公共指数 e 的默认值,并获取 n 作为键对的模数
- 如何在自定义信号处理程序中以编程方式获取sigterm的默认行为
- OpenCV-从C/C++中的默认网络摄像头获取图片-GTK问题
- 获取默认浏览器用户代理
- 如何获取任何类型的默认值
- 如何在后台打开默认浏览器并获取网页的源代码
- 使用 C++ 获取默认的 Windows 文本编辑器.exe路径
- 键入 trait 以获取默认参数升级
- 尝试在 Windows 10 上获取默认 Web 浏览器路径失败
- 如何使用提升程序选项获取默认参数值
- Linux C:获取默认接口的 IP 地址
- 获取默认初始化(NOT value/零初始化)POD作为右值
- visual如何使用vc++ / c++获取默认浏览器的关闭事件
- 尝试使用GetObject();获取默认背景色