为什么我的动画要闪烁???

cd_himor 2002-11-21 08:50:12
我在onpaint()中画了一个矩形,
然后用ontimer()中改变其位置,然后InvalidateRect该矩形。
但照此作的动画,该矩形会出现闪烁。
怎样才能做到不闪烁呢?
...全文
65 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gbstar2021 2002-11-22
  • 打赏
  • 举报
回复
// 下面列出一段概念性的代码
// in OnDraw() 创建一个内存位图和一个内存dc
CBitmap bmp;
CDC memdc;
memdc.CreateCompatibleDC(pDC);
bmp.CreateCompatibleBitmap(pDC,w,h);
memdc.SelectObject(&bmp) // 位图选入 dc, 生成一个“缓冲”
memdc.FillSolidRect(....)// 填充背景色

// 把你的图像绘制都定位到 memdc 上
// 如: memdc.Ellipse(...)

// 最后把 memdc 的内容一次显示到 pDC 上
pDC->BitBlt(...&memdc...);

// 因为绘图动作一次完成,所以不会有闪烁 (WM_ERASEBKGND 消息响应中直返回 TRUE ,禁止默认的刷新动作)
ArEoN 2002-11-22
  • 打赏
  • 举报
回复
up
crazy_lazy_pig 2002-11-22
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/986/986073.xml?temp=.797909
天高云淡 2002-11-22
  • 打赏
  • 举报
回复
关注
cd_himor 2002-11-22
  • 打赏
  • 举报
回复
能否请gboy详细介绍一下绘图时使用双缓冲.谢谢.
gbstar2021 2002-11-21
  • 打赏
  • 举报
回复
1、绘图时使用双缓冲
2、WM_ERASEBKGND 消息响应中直接返回 TRUE ,禁止刷新

这样可以避免闪烁

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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