15,980
社区成员




if (m_first)
{// 复制背景
CDialog* pParent = (CDialog*)GetParent();
CPoint pt(0, 0);
MapWindowPoints(pParent, &pt, 1);
CDC* pdc = GetParent()->GetDC();
m_bkDc.CreateCompatibleDC(pdc);
CBitmap memBmp;
memBmp.CreateCompatibleBitmap(pdc, rect.right, rect.bottom);
m_bkDc.SelectObject(&memBmp);
m_bkDc.BitBlt(0, 0, rect.right, rect.bottom, pdc, pt.x, pt.y, SRCCOPY);
ReleaseDC(pdc);
m_first = false;
}
void CMyButton::PaintBk(CDC* pDC)
{
CClientDC clDC(GetParent());
CRect rect;
CRect rect1;
CDC m_dcBk;
CBitmap m_bmpBk;
CBitmap* m_pbmpOldBk;
GetClientRect(rect);
GetWindowRect(rect1);
GetParent()->ScreenToClient(rect1);
if (m_dcBk.m_hDC == NULL)
{
m_dcBk.CreateCompatibleDC(&clDC);
m_bmpBk.CreateCompatibleBitmap(&clDC, rect.Width(), rect.Height());
m_pbmpOldBk = m_dcBk.SelectObject(&m_bmpBk);
m_dcBk.BitBlt(0, 0, rect.Width(), rect.Height(), &clDC, rect1.left, rect1.top, SRCCOPY); //将rect1.left的值增加一个button宽度,就透明了
} // if
pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &m_dcBk, 0, 0, SRCCOPY);
} // End of PaintBk