静态文本框透明的问题
对话框背景是图片,要求点击图片上某片区域会有消息响应
于是我在对话框上加了个静态文本框(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,