设置控件的背景颜色? (WinAPI的)

时间:2010-06-23 22:16:50

标签: c++ c winapi

如何设置控件的背景颜色(等效于.Net中的control.backcolor)。我试过没有运气的setBKColor。

ex:TabHwnd = createWindowEx(NULL,WC_TAB ....

然后如何设置TabHwnd的背面颜色?

由于

3 个答案:

答案 0 :(得分:3)

Windows在绘制控件的背景时会生成一条消息,您的程序可以自行响应消息。

答案 1 :(得分:1)

我知道这个问题已经过时了,但也许这个答案仍然可以帮助其他人。

对我来说有用的是为背景颜色消息返回一个空心画笔。例如:

switch (msg) {
  case WM_CTLCOLORDLG:
    return (INT_PTR)GetStockObject(HOLLOW_BRUSH);
  case WM_CTLCOLORSTATIC:
    return (INT_PTR)GetStockObject(HOLLOW_BRUSH);
}

此外,您无需担心删除GetStockObject创建的“画笔”。

答案 2 :(得分:0)

尝试子类化(请参阅SetClassLong)并处理WM_ERASEBKGND