首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

静态文本框透明的有关问题

2012-01-19 
静态文本框透明的问题对话框背景是图片,要求点击图片上某片区域会有消息响应于是我在对话框上加了个静态文

静态文本框透明的问题
对话框背景是图片,要求点击图片上某片区域会有消息响应
于是我在对话框上加了个静态文本框(static),并选择了透明属性.
运行后发现静态文本框背景是灰色的,图片被挡住了,请问如何解决?
谢谢!

[解决办法]
方案1:用OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 函数设置要透明(CWnd的继承类才有这个函数)
if (nCtlColor==CTLCOLOR_STATIC|| nCtlColor==CTLCOLOR_BTN||nCtlColor==CTLCOLOR_MAX)
{
pDC-> SetBkMode(TRANSPARENT);
pDC-> SetTextColor(RGB(255,255,255));
return (HBRUSH)::GetStockObject(NULL_BRUSH);
}
方案2:在OnPaint()函数里面直接画static的内容
pDC.TextOut(250, 10, "单位 ");//(前面2个参数是坐标,第三个参数是内容)
方案3:用别人写好的类实现

[解决办法]
直接在OnPaint里画Static的内容比较方便吧

pDC-> SetBkMode(TRANSPARENT); //设置文字背景透明
pDC-> SetTextColor(RGB(255,255,255));//设置文字颜色

pDC-> TextOut(x,y, "Source ");
或者
pDC-> DrawText( "Source ",CRect(0,0,100,100),DT_CENTER);

要不继承一个CStatic,

热点排行