嗯,我想要一个非常简单的事情,但有点困惑。
void CAppDlg::OnPaint()
{
CPaintDC dc(this);
CDC pdc;
pdc.CreateCompatibleDC(&dc);
CBitmap *oldBmp = pdc.SelectObject(&m_BmpImg[0]);
dc.BitBlt(0, 0, m_SizBmpImg[0].cx, m_SizBmpImg[0].cy, &pdc, 0, 0, SRCCOPY);
dc.SelectObject(&oldBmp);
}
在上面的代码片段中,我想将最后3行放到一个单独的函数中。现在我无法将CPaintDC作为函数参数传递,我需要将其转换为CDC或CMemDC。还有我如何通过这个pdc(CDC pdc)或者我应该在我的函数中创建一个新的。
一个有点解释的样本会有很大的帮助。
答案 0 :(得分:0)
这应该有用。
void CAppDlg::OnPaint()
{
CPaintDC dc(this);
CDC pdc;
pdc.CreateCompatibleDC(&dc);
YourSeparateFUnction(dc, pdc);
}
void CAppDlg::YourSeparateFUnction(CPaintDC & dc, CDC & pdc)
{
CBitmap *oldBmp = pdc.SelectObject(&m_BmpImg[0]);
dc.BitBlt(0, 0, m_SizBmpImg[0].cx, m_SizBmpImg[0].cy, &pdc, 0, 0, SRCCOPY);
dc.SelectObject(&oldBmp);
}