代码如下:
BOOL CScrollPtStatic::OnEraseBkgnd(CDC* pDC)
{
CStatic::OnEraseBkgnd(pDC);
CDC m_ScMemmdc;
m_ScMemmdc.CreateCompatibleDC(pDC);
m_ScMemmdc.SetMapMode(m_dc->GetMapMode());
///准备工作
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm);
UINT nWidth = tm.tmAveCharWidth * m_strText.GetLength()+2*width;
UINT nHeight = height; m_ScMemmdc.SelectObject(this->GetFont());
m_ScMemmdc.SetTextColor(RGB(255, 0, 0)); CBitmap bitmap;
bitmap.CreateCompatibleBitmap(&m_ScMemmdc,nWidth,nHeight);
CBitmap* pOldBitmap = m_ScMemmdc.SelectObject(&bitmap);
m_ScMemmdc.FillSolidRect(0,0,nWidth,nHeight,m_dc->GetBkColor());
m_ScMemmdc.TextOut(0,0,m_strText);
m_dc->BitBlt(0,0,width,nHeight,&m_ScMemmdc,mstartX,0,SRCCOPY);
m_ScMemmdc.SelectObject(pOldBitmap);
m_ScMemmdc.DeleteDC();
bitmap.DeleteObject(); return true;
}
BOOL CScrollPtStatic::OnEraseBkgnd(CDC* pDC)
{
CStatic::OnEraseBkgnd(pDC);
CDC m_ScMemmdc;
m_ScMemmdc.CreateCompatibleDC(pDC);
m_ScMemmdc.SetMapMode(m_dc->GetMapMode());
///准备工作
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm);
UINT nWidth = tm.tmAveCharWidth * m_strText.GetLength()+2*width;
UINT nHeight = height; m_ScMemmdc.SelectObject(this->GetFont());
m_ScMemmdc.SetTextColor(RGB(255, 0, 0)); CBitmap bitmap;
bitmap.CreateCompatibleBitmap(&m_ScMemmdc,nWidth,nHeight);
CBitmap* pOldBitmap = m_ScMemmdc.SelectObject(&bitmap);
m_ScMemmdc.FillSolidRect(0,0,nWidth,nHeight,m_dc->GetBkColor());
m_ScMemmdc.TextOut(0,0,m_strText);
m_dc->BitBlt(0,0,width,nHeight,&m_ScMemmdc,mstartX,0,SRCCOPY);
m_ScMemmdc.SelectObject(pOldBitmap);
m_ScMemmdc.DeleteDC();
bitmap.DeleteObject(); return true;
}
CStatic::OnEraseBkgnd(pDC);
pDC->SetBkMode(TRANSPARENT);
CDC m_ScMemmdc;
m_ScMemmdc.CreateCompatibleDC(pDC);
m_ScMemmdc.SetMapMode(pDC->GetMapMode());
///准备工作
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm);
UINT nWidth = tm.tmAveCharWidth * m_strText.GetLength()+2*width;
UINT nHeight = height; m_ScMemmdc.SelectObject(this->GetFont());
m_ScMemmdc.SetTextColor(RGB(255, 0, 0)); CBitmap bitmap;
bitmap.CreateCompatibleBitmap(&m_ScMemmdc,nWidth,nHeight);
CBitmap* pOldBitmap = m_ScMemmdc.SelectObject(&bitmap);
m_ScMemmdc.FillSolidRect(0,0,nWidth,nHeight,pDC->GetBkColor());
m_ScMemmdc.TextOut(0,5,m_strText);
pDC->BitBlt(0,0,width,nHeight,&m_ScMemmdc,mstartX,0,SRCCOPY);
m_ScMemmdc.SelectObject(pOldBitmap);
m_ScMemmdc.DeleteDC();
bitmap.DeleteObject(); return 0;