积极答复者
如何获取对话框的背景颜色

问题
-
我原以为这个问题比较容易,没想到用了一系列的方法还没搞定。用过以下方法:
1.
GetClassLong(this-> GetSafeHwnd(), GCL_GCL_HBRBACKGROUND); // 返回值居然为0
2.
GetSysColor(COLOR_3DFACE)
获取的值为一个白色,不是对话框背景那种灰色。
3.
CDC *pDC = GetDC();
GetPixel(pDC->GetSafeHdc,0,0);
获取的值为一个白色,不是对话框背景那种灰色。
4.GetSysColor(COLOR_WINDOW);
获取的值为一个白色,不是对话框背景那种灰色。
前无古人,后无来者
答案
-
GetSysColor(COLOR_3DFACE / COLOR_BTNFACE );
就是默认的对话框的那种灰色的R: 212
G: 208
B: 200
Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.- 已建议为答案 VisualElevenModerator 2011年3月28日 0:56
- 已标记为答案 VisualElevenModerator 2011年3月31日 0:30
-
GetSysColor(COLOR_3DFACE / COLOR_BTNFACE );
就是默认的对话框的那种灰色的R: 212
G: 208
B: 200
Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
0xBAADF00D- 已标记为答案 VisualElevenModerator 2011年3月31日 0:30
全部回复
-
比较绕路的方法。。这个你可以通过GetDesktopWindow()然后对整个桌面进行截图,根据你的窗口的位置来GetPixel就可以获取颜色了。
0xBAADF00D- 已建议为答案 VisualElevenModerator 2011年3月28日 0:56
-
GetSysColor(COLOR_3DFACE / COLOR_BTNFACE );
就是默认的对话框的那种灰色的R: 212
G: 208
B: 200
Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.- 已建议为答案 VisualElevenModerator 2011年3月28日 0:56
- 已标记为答案 VisualElevenModerator 2011年3月31日 0:30
-
GetSysColor(COLOR_3DFACE / COLOR_BTNFACE );
就是默认的对话框的那种灰色的R: 212
G: 208
B: 200
Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
0xBAADF00D- 已标记为答案 VisualElevenModerator 2011年3月31日 0:30