BOOL CListBoxEx::OnEraseBkgnd(CDC* pDC)
{
CRect rc;
GetClientRect(rc);
//先删除再创建
m_dcMemClient.DeleteDC();
m_dcMemClient.CreateCompatibleDC(NULL);
m_bmpMemClient.DeleteObject();
m_bmpMemClient.CreateCompatibleBitmap(pDC, rc.Width(), rc.Height());
m_dcMemClient.SelectObject(m_bmpMemClient);
CBrush bru;
bru.CreateSolidBrush(RGB(255, 255, 255));
m_dcMemClient.FillRect(&rc, &bru);
// 把所有画的东西先画到内存.
CWnd::DefWindowProc(WM_PAINT, (WPARAM)m_dcMemClient.m_hDC, 0);
pDC->BitBlt(rc.left, rc.top, rc.Width(), rc.Height(), &m_dcMemClient,
rc.left, rc.top, SRCCOPY);
m_dcMemClient.DeleteDC();
m_bmpMemClient.DeleteObject();
return TRUE;
}