有一段代码不解:(注:m_dcBK为CDC类型, m_bmpBK,m_bmpBKOld为CBitmap类型)
CClientDC clientDC(GetParent());
CRect crect;
GetClientRect(crect);
if (m_dcBk.m_hDC == NULL)
{
m_dcBk.CreateCompatibleDC(&clientDC);
m_bmpBk.CreateCompatibleBitmap(&clientDC, crect.Width(), crect.Height());
m_bmpBkOld = m_dcBk.SelectObject(&m_bmpBk);
m_dcBk.BitBlt(0, 0, crect.Width(), crect.Height(), &clientDC, wrect.left, wrect.top, SRCCOPY);
}我理解应该是把clientDC的画面拷贝到m_dcBK里,但是为什么会出现m_dcBk.SelectObject(&m_bmpBk);?按道理应该是clientDC SelectObject后再调用BitBlt的.但是我以往都是在复制源SelectObject的而不是复制目标SelectObject的,在这段程序如果这样做却无效果.为什么呢?还是我理解错程序呢?
CClientDC clientDC(GetParent());
CRect crect;
GetClientRect(crect);
if (m_dcBk.m_hDC == NULL)
{
m_dcBk.CreateCompatibleDC(&clientDC);
m_bmpBk.CreateCompatibleBitmap(&clientDC, crect.Width(), crect.Height());
m_bmpBkOld = m_dcBk.SelectObject(&m_bmpBk);
m_dcBk.BitBlt(0, 0, crect.Width(), crect.Height(), &clientDC, wrect.left, wrect.top, SRCCOPY);
}我理解应该是把clientDC的画面拷贝到m_dcBK里,但是为什么会出现m_dcBk.SelectObject(&m_bmpBk);?按道理应该是clientDC SelectObject后再调用BitBlt的.但是我以往都是在复制源SelectObject的而不是复制目标SelectObject的,在这段程序如果这样做却无效果.为什么呢?还是我理解错程序呢?
----------------------------------------
高人