Invalidate(FALSE)作用时间问题

Uncle_higo 2006-06-11 05:42:24
void CAppleDlg::OnTest()
{

CClientDC ClientDC(this);

Graphics graphics(ClientDC);
................

Invalidate(FALSE);

Image piclight(L"light.png");

graphics.DrawImage(&piclight,lpointx,lpointy);
}

通过按钮反复调用此函数 我想实现的效果是 通过Invalidate刷掉DrawImage在上一次贴的图片
然后在另一个位置重新DrawImage一个图片从而实现动画效果 但是为什么一调用此函数 图片显示一下就马上被刷掉了 按理说Invalidate在前面 应该是先刷掉上一次的图片 然后再显示新图片 直到再次调用此函数新的图片才会被刷掉啊
...全文
196 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gentlelotus 2006-06-13
  • 打赏
  • 举报
回复
Invalidate函数的实现方式并不是同步的函数调用,而只是发了一个窗口重绘的消息而已,只能等到主调函数返回后处理重绘消息时才会真正的执行刷新动作。如果你一定要立即刷新可以自己直接调用重绘函数。
CUG122032 2006-06-13
  • 打赏
  • 举报
回复
在ondraw里画图...

你是不是发过了?我好像回过这样一个贴...
Uncle_higo 2006-06-13
  • 打赏
  • 举报
回复
能顶吗
Uncle_higo 2006-06-11
  • 打赏
  • 举报
回复
也就是说无论如何 调用完此函数总会有一个图片是呈显示状态的阿

15,976

社区成员

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

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