这段代码有问题吗?怎么还是会闪烁?
CBitmap m_bitmap;
HBITMAP hBitmap = (HBITMAP) LoadImage(NULL, _T(MYBmp),
IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);
m_bitmap.Attach(hBitmap);
BITMAP bm;
m_bitmap.GetBitmap(&bm);
//定义一个显示设备对象
CDC dcImage;
//建立与屏幕显示兼容的内存显示设备
if (!dcImage.CreateCompatibleDC(pDC))
{ return; }
// Paint the image.
//将位图选入到内存显示设备中
CBitmap* pOldBitmap = dcImage.SelectObject(&m_bitmap);
//将内存中的图拷贝到屏幕上进行显示
pDC->BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &dcImage, 0, 0, SRCCOPY);
dcImage.SelectObject(pOldBitmap);
DeleteObject(m_bitmap.Detach());
我已经用了双缓冲啊,可是每次换图片的时候,也就是改变MYBmp路径的时候,一initialize窗口,还是闪烁了一下。是哪里写的有问题吗?