首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何更改静态win32控件的背景?

如何更改静态win32控件的背景?
EN

Stack Overflow用户
提问于 2009-06-13 01:15:21
回答 1查看 3.9K关注 0票数 2

如果(文本)静态控件的父窗体的背景上有一个图案,那么静态控件周围的区域就是一个丑陋的纯色斑点。如何使用与其父窗口相同的图案绘制静态控件的背景?

我试过了,

代码语言:javascript
运行
复制
SetClassLong(retval , GCL_HBRBACKGROUND, (LONG)stripes);

其中retval是一个HWND,指向我刚刚创建的静态控件,

而条纹是从位图创建的HBRUSH。我也尝试过这个:

代码语言:javascript
运行
复制
SetClassLongPtr(retval , GCLP_HBRBACKGROUND, (LONG)stripes);

他们两个都不管用。有人知道如何在C中改变静态控件的背景吗?

更新

我处理了WM_CTLCOLORSTATIC消息,它在一定程度上有效--它用我想要的模式填充了所有标签中的空白区域。但是文字后面的颜色是白色的.我怎样才能让模式也填满这个空间呢?

不要紧,知道了。

SetBkMode(hdc, TRANSPARENT);

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-06-13 01:17:29

您可以通过处理WM_CTLCOLOR消息来设置静态控件的背景色。

从文档中

如果应用程序处理此消息,它将返回画笔的句柄。系统使用画笔绘制控件的背景。

该消息还传递一个指向您可以使用的显示上下文的指针。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/989693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档