Iimage显示图像

qwqwqw408 2009-09-18 08:00:04
因为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);
...全文
108 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzbsd 2009-09-21
  • 打赏
  • 举报
回复
up
wohuazhen 2009-09-20
  • 打赏
  • 举报
回复
呵呵。
qwqwqw408 2009-09-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 suwyhoho 的回复:]
LZ说说是咋搞定的吧
[/Quote]

HBITMAP hBmp = CreateCompatibleBitmap(hMenDc,800,600);

这一句的问题,不应该用hMenDc,而应该用你要显示的dc,我这里是屏幕的dc,就是m_hdc
huabinsir 2009-09-20
  • 打赏
  • 举报
回复
厉害.....
suwyhoho 2009-09-19
  • 打赏
  • 举报
回复
LZ说说是咋搞定的吧
qwqwqw408 2009-09-18
  • 打赏
  • 举报
回复
俺自己找到原因了。。

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧