实现STATIC控件透明
2015-04-27 17:27
162 查看
当对话框有背景色的时候,我们放一个STATIC控件上去,背景就变成了STATIC控件的颜色(灰色)。为了达到透明效果,可以在消息函数OnCtlColor中添加以下代码以达到透明效果:
这样我们的控件就实现透明了。我们可以在上面显示时钟,用定时器不断更新TEXT显示时间。问题来了,显示位置出现了重影。如何解决呢,我们可以调用Invalidate(TRUE);
使窗口重绘就可以了。
问题又来了,由于不断的更新时间,不断地重绘窗口,会导致窗口不断闪烁,这...
没关系,我们可以用局部刷新来解决,而不是刷新整个窗口。
其中IDC_STC_DATE是透明且需要不断刷新的控件。这样就实现了控件透明而且没有闪烁的问题了。
//所有static控件背景透明 if(nCtlColor == CTLCOLOR_STATIC) { pDC->SetBkMode(TRANSPARENT); return (HBRUSH)::GetStockObject(NULL_BRUSH); } //或者只需要某一个控件透明 if(pWnd->GetDlgCtrlID() == IDC_STC_LABEL1) { pDC->SetBkMode(TRANSPARENT); return (HBRUSH)::GetStockObject(NULL_BRUSH); }
这样我们的控件就实现透明了。我们可以在上面显示时钟,用定时器不断更新TEXT显示时间。问题来了,显示位置出现了重影。如何解决呢,我们可以调用Invalidate(TRUE);
使窗口重绘就可以了。
问题又来了,由于不断的更新时间,不断地重绘窗口,会导致窗口不断闪烁,这...
没关系,我们可以用局部刷新来解决,而不是刷新整个窗口。
CRect rect; (GetDlgItem(IDC_STC_DATE))->GetWindowRect(rect); ScreenToClient(rect); InvalidateRect(rect);
其中IDC_STC_DATE是透明且需要不断刷新的控件。这样就实现了控件透明而且没有闪烁的问题了。
相关文章推荐
- MFC中实现Static控件背景透明
- MFC一一添加背景图片并让控件实现透明的
- Static控件和状态栏文字滚动效果实现
- 解决透明static控件后刷新问题
- VC++ Static标签实现背景透明!
- 半透明窗口中显示标准控件(控件与文字不透明)的实现方案(附源码)
- 解决透明static控件重叠问题
- 解决透明static控件后刷新问题
- MFC实现背景透明,控件不透明的对话框,且点击图片有事件响应
- MFC透明控件的超级简单实现--发布日期:2008-05-14 00:44
- [wxWidgets]_[中级]_[自定义wxStaticText控件支持图片背景(透明背景)]
- MFC 可以设置背景色、字体、字体颜色、透明背景的 Static 静态文本控件
- MFC解决Static控件背景透明时文本覆盖重影
- MFC中设置static控件背景透明
- VC窗体透明而控件不透明以及Static文本背景透明方法
- 半透明窗口中显示标准控件(控件与文字不透明)的实现方案(附源码)
- MFC中各种控件透明的实现方法总结
- [wxWidgets]_[中级]_[自定义wxStaticText控件支持图片背景(透明背景)]
- Windows Mobile实现透明控件
- MFC设置Static控件背景透明