|
因为Iimage直接显示效率不高,而且不能做动态效果。所以想先draw到一块内存设备环境(与开发板显示环境一样)上,然后再bitblt到桌面dc 。这样可以省去颜色位数转换的时间(只是显示的时候省掉,始终是要转换的),于是用了以下代码来实现。最后运行不报错,但是图像差的离谱。。想请问各位大侠,是我代码的问题么。。。
HDC m_hdc = GetDc(NULL);
HDC hMenDc = CreateCompatibleDC(NULL);
HBITMAP hBmp = CreateCompatibleBitmap(hMenDc,800,600);
HGDIOBJ hOldBmp = SelectObject(hMenDc,hbmp);
RECT rc;
rc.left = 0;
rc.top = 0;
rc.bottom = 800;
rc.right = 600;
pImage->Draw(hMenDc,&rc,NULL);
BitBlt(m_hdc,rc.left,rc.top,800,600,hMenDc,0,0,SRCCOPY);
SAFERELEASE(pImage)
SelectObject(hMenDc,hOldBmp );
DeleteObject(hBmp );
DeleteDC(hMenDc);
|
|