画图的时候 能看到图是从上到下 缓缓刷新

n567656756765676567 2012-07-18 09:23:49
请问大家一个问题:在wince的MFC程序中,
我在OnPaint函数里,
CPaintDC dc(this);
CDC memdc;
memdc.CreateCompatibleDC(&dc);
CBitmap bmp;
bmp.LoadBitmap(m_ibmp); //m_ibmp是图的id

memdc.SelectObject(&bmp);

dc.BitBlt(0, 0, 400, 200, &memdc, 0, 0, SRCCOPY);
DeleteDC (memdc) ; //释放内存设备环境
DeleteObject(bmp);
在OnEraseBkgnd(CDC *pDC)里直接返回true,
我是循环显示几张图片,对于第一次显示的图片,我能看到图是从上到下,缓缓刷新下来,
但第二次显示的话,就不会再缓缓刷新,而是直接就一张图画出来。
请问是什么原因呢??? 为什么会出现缓缓刷新的效果?很纳闷!
...全文
82 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
图灵狗 2012-07-19
  • 打赏
  • 举报
回复
用Double Buffer的绘图机制就不会出现这种现象。
赵4老师 2012-07-18
  • 打赏
  • 举报
回复
减少动态创建删除对象。
多用全局静态对象。
  • 打赏
  • 举报
回复
找到原因了 我打印了时间 BitBlt这个函数第一次加载图片时 用了较多的时间,这个函数效率很大问题,
网上好像挺多这方面的问题,不过还没想好怎么改,大家有什么建议,directdraw的话,暂时不考虑
有什么简单的方法可以尝试吗???
谢谢
佑勿勿 2012-07-18
  • 打赏
  • 举报
回复
可能是你使用的資源過多,超成CPU過載,你看到的緩慢就像是平時電腦有些卡的時候瀏覽圖片那樣,圖片是慢慢顯示出來的

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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