MFC定时器问题。

u010225329 2013-04-24 04:53:51
假设我有个画图的定时间器
OnTimer(...)
{
//画图
}

但是我想在另个类中,写SetTimer(),因为要符合某种条件才可以画图。

请高手指点怎么做?
...全文
121 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
一桶姜山 2013-04-25
  • 打赏
  • 举报
回复
建议不要在OnTimer里画,要在OnPaint里画,OnTimer只做一些数据的修改,例如某个物体坐标每秒在x方向移动2个像素,这种事在ontimer里做,然后OnPaint里根据坐标画出这个物体。 Ontimer里每次有数据改变就invalidate一下,通知重绘
u010225329 2013-04-25
  • 打赏
  • 举报
回复
引用 1 楼 redsunxin 的回复:
另个类中定义HWND m_hWnd; 在本类中,把窗口句柄赋值给m_hWnd,然后用win32的::SetTimer在另个类中,指定m_hWnd调用。
您有例子程序吗?给我看看,我是个菜鸟,不太明白
xiaohuh421 2013-04-24
  • 打赏
  • 举报
回复
你可以不要OnTimer函数, 注意SetTimer的第三个参数(MFC), 是一个回调函数, 这样你只需一借用一下某个窗口的句柄, 就可以在类中使用自己的函数. 即自己的"OnTimer" 具体在MSDN中查看 SetTimer函数说明
西山小月 2013-04-24
  • 打赏
  • 举报
回复
可以发消息啊,sendmessage
夫人的泡泡鱼 2013-04-24
  • 打赏
  • 举报
回复
自定义消息来实现吧
微尘8 2013-04-24
  • 打赏
  • 举报
回复
楼上两位都说得很对,我最近遇到过类似的问题也是用自定义消息解决的,如果对MFC自定义消息不熟可以参看博客 http://blog.csdn.net/qihailong123456/article/details/6777112 http://blog.163.com/strive_only/blog/static/893801682010101911467765/
liuli7786 2013-04-24
  • 打赏
  • 举报
回复
假如这两个类为类A,类B; 在类A中设置一个定时器,并实现它的OnTimer函数,在类B中进行绘图。完全可以在类A中的OnTimer函数中给类B发送一个自定义消息,在类B中进行绘图。
redsunxin 2013-04-24
  • 打赏
  • 举报
回复
另个类中定义HWND m_hWnd; 在本类中,把窗口句柄赋值给m_hWnd,然后用win32的::SetTimer在另个类中,指定m_hWnd调用。

15,979

社区成员

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

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