Static Text超链接下划线重绘背景透明的有关问题!

Static Text超链接下划线重绘背景透明的问题!!!
C/C++ code

void CXHyperLink::OnMouseMove(UINT nFlags, CPoint point) 
{
    if (!m_bOverControl)        // Cursor has just moved over control
    {
        m_bOverControl = TRUE;

        if (m_nUnderline == ulHover)
            SetFont(&m_UnderlineFont);    //  m_UnderlineFont
        Invalidate();

        SetTimer(m_nTimerID, 100, NULL);
    }
    CStatic::OnMouseMove(nFlags, point);
}

///////////////////////////////////////////////////////////////////////////////
// OnTimer
void CXHyperLink::OnTimer(UINT nIDEvent) 
{
    CPoint p(GetMessagePos());
    ScreenToClient(&p);

    CRect rect;
    GetClientRect(rect);
    if (!rect.PtInRect(p))
    {
        m_bOverControl = FALSE;
        KillTimer(m_nTimerID);

        if (m_nUnderline != ulAlways)
            SetFont(&m_StdFont);
        rect.bottom+=10;
        InvalidateRect(rect);
    }
    
    CStatic::OnTimer(nIDEvent);
}



C/C++ code

BOOL CXHyperLink::OnEraseBkgnd(CDC* pDC) 
{
    CRect rect;
    GetClientRect(rect);
    if (m_crBackground != (UINT)-1)
        pDC->FillSolidRect(rect, m_crBackground);
    else
        pDC->FillSolidRect(rect, RGB(255,255,255)); //::GetSysColor(COLOR_3DFACE)  

    return TRUE;
}

这段代码是将矩形区域填充为白色,我现在想要透明的效果!!!




------解决方案--------------------
C/C++ code

if (pWnd->GetDlgCtrlID() == //文本框)
    {
        pDC->SetBkMode(TRANSPARENT);
    }

------解决方案--------------------
DrawThemeParentBackground API
或者
CBitmap bmp;
CPaintDC dc(this);
CDC dcMem;
dcMem.CreateCompatableDC(&dc);
bmp.CreateComaptableBitmap(&dc, width, height);
dcMem.SelectObject(&bmp);
CWnd* pParent = GetParent();
CRect r;
GetWindowRect(&r);
pParent->ScreenToClient(&r);
dcMem.OffsetViewportOrg(-r.left, -r.top);
pParent->SendMessage(WM_PRINTCLIENT, (WPARAM)dcMem.GetSafeHdc(), PRF_CHECKVISIBLE | PRF_ERASEBKGND | PRF_CLIENT);
dcMem.DrawText(_T("our text"), ...);
dc.BitBlt(...);