我的程序是单文档,CView类,我在上面放了一个CStatic控件。
 
 现在我想这个static透明,不知如何办?我搜了一下以前的帖子,多半是问如何使Dialog上的Static控件透明,方法是重载CDialog::OnCtlColor函数。而我放在CView上,没有这个函数可以重载呀! 谢谢高手指教!

解决方案 »

  1.   

    HBRUSH CMyView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CRecordView::OnCtlColor(pDC, pWnd, nCtlColor);//这里有重载

    // TODO: Change any attributes of the DC here
       int nID = pWnd->GetDlgCtrlID();  
    if(nID==IDC_MYSTATIC)//你的static的名字,最后建好后将它改一下名,不用它的
                                  //默认的ID:IDC_STATIC,关键所在,
                                  //因为有太多的控件默认的都是IDC_STATIC
    {
    pDC->SetTextColor(RGB(100,20,120)); //设置字体颜色
    pDC->SetBkMode(TRANSPARENT);
    return HBRUSH(GetStockObject(HOLLOW_BRUSH));
    }
    return hbr;
    }
      

  2.   

    to  joy0861(深呼吸)  我的Static是动态创建的,View为标准的CView类,不是CFormView。不能重载OnCtlColor。
      

  3.   

    可以重载,不过要设置一下,你也可以直接把对话框中的代码拷过来,视图有OnCtlColor消息