【问题标题】:Get window's background color获取窗口背景颜色
【发布时间】:2012-02-15 00:10:20
【问题描述】:

是否有任何函数(C++、MFC)可以获取窗口的背景颜色?

【问题讨论】:

  • 你是指任何窗口或windows桌面的背景颜色吗?

标签: c++ mfc


【解决方案1】:

windows 有默认的背景颜色,使用 GetSysColor(COLOR_WINDOW)。但最终,一个窗口会自行决定什么是“背景”,什么是“前景”。受 WNDCLASS.hbrBackground 和窗口的 WM_ERASEBKGND 和 WM_PAINT 消息处理程序的影响。一切皆有可能。

【讨论】:

  • +1 表示hbrBackground。不一定要设置,但在这种情况下,您必须怀疑是否存在背景颜色。 (例如透明窗户等)
  • 如果默认 OnCtlColor 行为被覆盖,它也会受到 WM_CTL_COLOR 消息的影响。
【解决方案2】:
CDC* pDc= GetDC(); 
COLORREF crBkgnd = pDc->GetBkColor(); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    相关资源
    最近更新 更多