我想在view里面显示图像的同时,又能进行GDI绘图。
可是会出现屏幕闪烁问题,
于是我采用内存绘图的方式来进行:
1.在view类头文件中定义:
CDC m_dcCompatible;
2.在初始绘图的时候,将图像数据拷贝到内存DC中:
CClientDC dc(this);
if (!m_dcCompatible.m_hDC)
{
m_dcCompatible.CreateCompatibleDC(&dc);
CRect rect;
GetClientRect(&rect);
CBitmap bitmap;
bitmap.CreateCompatibleBitmap(&dc,rect.Width(),rect.Height());
pDoc->m_dcCompatible.SelectObject(&bitmap);
pDoc->m_dcCompatible.BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY);//这是显示代码
}
3.在OnDraw里面就可以用pDC进行GDI绘图操作了,屏幕不会闪烁。
4.在析构函数里面,将m_dcCompatible释放掉。
if (m_dcCompatible.m_hDC)
{
m_dcCompatible.DeleteDC();
}