MFC 现在我想实现如下功能 当鼠标不点时,窗口里的图片在上下左右地移动 当点鼠标时,立即到
MFC现在我想实现如下功能当鼠标不点时,窗口里的图片在上下左右地移动当点鼠标时,立即到消息响应函数里,判断是否点中图片。现在我用while来执行第一步,但是鼠标点击后进入...
MFC
现在我想实现如下功能
当鼠标不点时,窗口里的图片在上下左右地移动
当点鼠标时,立即到消息响应函数里,判断是否点中图片
。
现在我用while来执行第一步,但是鼠标点击后进入不了消息响应函数
求办法 展开
现在我想实现如下功能
当鼠标不点时,窗口里的图片在上下左右地移动
当点鼠标时,立即到消息响应函数里,判断是否点中图片
。
现在我用while来执行第一步,但是鼠标点击后进入不了消息响应函数
求办法 展开
1个回答
展开全部
MFC窗口程序,连续运动应该使用消息机制,使用while的大循环绘制界面,是和windows编程理念冲突的,会造成很多问题。
合理方案1:定时器。通过定时器完成每个单次的绘制。
合理方案2:界面线程。在绘制比较复杂、并发要求较高、或者数据交互比较多的情况下,都应该使用线程来解决。
while循环的绘图,应该彻底摒弃。
合理方案1:定时器。通过定时器完成每个单次的绘制。
合理方案2:界面线程。在绘制比较复杂、并发要求较高、或者数据交互比较多的情况下,都应该使用线程来解决。
while循环的绘图,应该彻底摒弃。
更多追问追答
追问
可以说说方案一吗,是定时回调吗?
大概说说下吧
追答
MFC的程序,不需要写回调函数,因为窗口类自带了OnTimer定时器响应函数,你只需重载实现这个函数,在函数中实现每个单次的绘制即可(绘制参数应该由类成员变量控制),定时器的启用就是SetTimer函数:
SetTimer(1,500,NULL);//500毫秒一次
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询