我正在尝试使用 API GetBkColor 和 GetSysColor(COLOR_WINDOW) 来获取窗口的颜色,但它给了我错误的值。当我通过使用某些工具获得 wndow 的颜色时,它与我从 API 获得的不同。
关于如何获得正确的颜色价值的任何建议?
如果窗口使用渐变颜色,那么如何找到特定像素的颜色?
GetBkColor
告诉您文本的当前背景颜色,但窗口可能会在绘制时更改它,因此这不会为您提供值。
GetSysColor(COLOR_WINDOW)
是给定当前配色方案的窗口推荐的默认颜色,但许多窗口选择不同的颜色。您可以尝试获取WNDCLASS
窗口并检查该hbrBackground
字段,但并非所有窗口都依赖该机制来设置其背景颜色。
要获取特定像素的颜色,您可以使用GetPixel
. 这对于采样几个像素很好,但不要试图通过调用这个来读取窗口中的每个像素 - 这太慢了。