如果(文本)静态控件的父窗体在其背景上有图案,则静态控件周围的区域是纯色的丑陋斑点。如何使用其父窗口使用的相同模式绘制静态控件的背景?
我试过了,
SetClassLong(retval , GCL_HBRBACKGROUND, (LONG)stripes);
其中retval是HWND,指向我刚刚创建的静态控件,
和stripe是从位图创建的HBRUSH。我也试过这个:
SetClassLongPtr(retval , GCLP_HBRBACKGROUND, (LONG)stripes);
他们都没有工作。有谁知道如何在C中更改静态控件的背景?
我处理了WM_CTLCOLORSTATIC
消息,该消息在某种程度上起作用 - 它用我想要的模式填充所有标签中的空白空间。但是文字后面的颜色只是白色......我怎样才能让图案填满那个空间呢?
没关系,明白了
SetBkMode(hdc, TRANSPARENT);
答案 0 :(得分:2)
您可以通过处理WM_CTLCOLOR消息来设置静态控件的背景颜色。
来自文档
如果应用程序处理此消息,它将返回一个句柄 刷。系统使用画笔 画出控件的背景。
该消息还传递指向您可以使用的显示上下文的指针。