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

解决方案 »

  1.   

    方案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:用别人写好的类实现
      

  2.   

    直接在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,