使用BITBIT复制位图内容到视图区域后,什么也没有显示出来?不清楚是哪里的问题
public:
CBitmap m_bitmap; // 位图对象
CDC m_dcMemory; // 内存设备上下文
// 获取视图的设备上下文
CDC pDC;
// 创建与当前设备上下文兼容的内存设备上下文
pDlg->m_dcMemory.CreateCompatibleDC(&pDC);
// 创建与当前设备上下文兼容的位图
CRect rect;
pDlg->GetDlgItem(IDC_WAVEDRAW)->GetWindowRect(&rect);
pDlg->ScreenToClient(&rect);
pDlg->m_bitmap.CreateCompatibleBitmap(&pDC, rect.Width(), rect.Height());
// 将位图选入内存设备上下文
CBitmap* pOldBitmap = pDlg->m_dcMemory.SelectObject(&(pDlg->m_bitmap));
for (int i =0 ;i < num; i++)
{
dc.SetViewportOrg(610,180);
dc.MoveTo(0,0);
// 创建一个点数组来存储所有点
CPoint* points = new CPoint[200];
for(int j = 0; j < 200; j++)
{
points[j] = CPoint(j, -(pDoc->CAL[j] - 128));
}
// 使用Polyline一次性绘制所有点
dc.Polyline(points, 200);
// 释放内存
delete[] points;
//将视图区域绘制到位图上
BitBlt(pDlg->m_dcMemory, 610, 105, 600, 600, pDC, 0, 0, SRCCOPY);
//将位图绘制到视图区域
BitBlt(pDC,600,0,600,600,(pDlg->m_dcMemory),0,0,SRCCOPY);
}
//清理资源
pDlg->m_dcMemory.SelectObject(pOldBitmap);
pDlg->m_bitmap.DeleteObject();
DeleteDC(pDlg->m_dcMemory);