请教MFC静态文本背景设置为透明

HBRUSHCAnalyzerDlg::OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor){HBRUSHhbr=CDialog::On... HBRUSH CAnalyzerDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor == CTLCOLOR_STATIC)
{
pDC-> SetBkMode(TRANSPARENT);
}
return hbr;
}
文本框还是白色,挡住了对话框的背景图片
展开
 我来答
bhtzu
2015-03-28 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4152万
展开全部
首先,你要区分文本框和静态文本框,这是两种不同的控件,透明方法完全不同!
静态文本框的默认背景是灰色,也就是对话框的“底色”。只有文本框(编辑框)的默认背景为白色。
如果是静态文本框,那么控件属性里设置选中TRANSPARENT,你上面的代码就可以了。
如果是编辑框,那么需要改变刷子hbr 为空画刷。但编辑框,只在OnCtrlColor里面做,效果是很差的,你需要处理OnEraseBackGround,最好能重载编辑框类,处理一下文字刷新,否则总是有显示BUG。
更多追问追答
追问

这是静态文本框吧。

追答
没错,静态文本框,设置属性透明就可以了,一般不用OnCtrlColor设置空的背景画刷。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式