怎样协调好MFC中ondraw与ontimer的关系
我现在想做一个小游戏,涉及到时间的问题C工程名View类:关于OnDraw函数的刷新问题.OnDraw函数什么时候会被调用,会被调用几次.是否应该将刷屏代码写入OnTim...
我现在想做一个小游戏,涉及到时间的问题
C工程名View类:
关于OnDraw函数的刷新问题.OnDraw函数什么时候会被调用, 会被调用几次. 是否应该将刷屏代码写入OnTimer中?求大侠来帮我释惑,不胜感激 展开
C工程名View类:
关于OnDraw函数的刷新问题.OnDraw函数什么时候会被调用, 会被调用几次. 是否应该将刷屏代码写入OnTimer中?求大侠来帮我释惑,不胜感激 展开
3个回答
展开全部
OnTimer 是定时器函数,根据需要可以写入刷屏代码,如果时间间隔比较小的话 会有闪烁,OnDraw 函数在系统将要显示时调用,但也可在类的其他函数中调用使窗口无效的函数(如invalidate),也可以引发重绘。具体调用几次根据你的代码设置更新即可。另外窗口被覆盖或无效然后重新显示时可自动引发重绘。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
原则:ontimer是定时器,只控制参数变化并通知OnDraw进行局部更新,自己不重画。这样就没有冲突了。优化来说,“局部重绘”很关键。
追问
我想知道OnDraw什么时候被调用的。用ontimer控制参数变化,那么ondraw是如何进行更新的,或者说ontimer怎样通知ondraw更新,我是新手,还请大侠讲详细点,谢谢
追答
OnDraw在任何需要重绘的时候被自动调用,不需要你去主动调用这个函数。
OnTimer里面你只需要通知一下View:那一块需要更新了,系统自动调用OnDraw并且只更新那一块区域(当然,不声明区域就全部更新),通知方法:InvalidateRect
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ondraw是用来绘图的
ontimer是时间控制器
ontimer是时间控制器
追问
哥们,这我当然知道。你能说的更详细么- =
追答
自己找个例子吧
推荐你做窗口的隐藏!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询