
问下关于MFC中 SetTimer() 和 KillTimer() 的使用
intCWhirl_LetterView::OnCreate(LPCREATESTRUCTlpCreateStruct){if(CView::OnCreate(lpCre...
int CWhirl_LetterView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
if(mouse_distance <= 250)
{
SetTimer(1,-3.96 * mouse_distance + 1000,NULL);
}
return 0;
}
其中mouse_distance 是一个一直变化的值,它随着鼠标的移动的位置而变化,在OnMouseMove()中这样设置:
mouse_distance = sqrt((point.x - 200)*(point.x - 200) + (point.y - 200)*(point.y - 200));
我想请问一下,如何做到定时器中第二个参数随着鼠标移动的位置的变化而变化,即是时间间隔不断变化,是每移动一次就得KillTimer(),然后再重新调用SetTimer()吗?还是说用同一个定时器就可以了?当mouse_distance大于250的时候,我想停用计时器,该怎么写呢?KillTimer()应该放在哪个函数中?
如果是每次移动都得KillTimer(),然后再重新调用SetTimer(),那应该怎么写 展开
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
if(mouse_distance <= 250)
{
SetTimer(1,-3.96 * mouse_distance + 1000,NULL);
}
return 0;
}
其中mouse_distance 是一个一直变化的值,它随着鼠标的移动的位置而变化,在OnMouseMove()中这样设置:
mouse_distance = sqrt((point.x - 200)*(point.x - 200) + (point.y - 200)*(point.y - 200));
我想请问一下,如何做到定时器中第二个参数随着鼠标移动的位置的变化而变化,即是时间间隔不断变化,是每移动一次就得KillTimer(),然后再重新调用SetTimer()吗?还是说用同一个定时器就可以了?当mouse_distance大于250的时候,我想停用计时器,该怎么写呢?KillTimer()应该放在哪个函数中?
如果是每次移动都得KillTimer(),然后再重新调用SetTimer(),那应该怎么写 展开
2个回答
展开全部
添加WM_MOUSEMOVE 的消息,
在函数OnMouseMove中添加代码:
mouse_distance = sqrt((point.x - 200)*(point.x - 200) + (point.y - 200)*(point.y - 200));
if(mouse_distance <= 250)
{
/*这里的1是Timer的标识,最好设置为WM_USER+一个常数,避免与程序的其他标识冲突*/
SetTimer(1,-3.96 * mouse_distance + 1000,NULL);
}
else
KillTimer(1);//这里的1是上面Timer的标识。
SetTimer使用已有的timer的标识创建的时候会自动killtimer,然后使用新的时间设置计时器。
在函数OnMouseMove中添加代码:
mouse_distance = sqrt((point.x - 200)*(point.x - 200) + (point.y - 200)*(point.y - 200));
if(mouse_distance <= 250)
{
/*这里的1是Timer的标识,最好设置为WM_USER+一个常数,避免与程序的其他标识冲突*/
SetTimer(1,-3.96 * mouse_distance + 1000,NULL);
}
else
KillTimer(1);//这里的1是上面Timer的标识。
SetTimer使用已有的timer的标识创建的时候会自动killtimer,然后使用新的时间设置计时器。

2022-08-05 广告
苏州蓝晓生物科技有限公司。标准化核心产品:公司拥有完整的琼脂糖介质、葡聚糖介质、聚甲基丙烯酸酯介质生产线,年产分离介质50000L,产品质量稳定并达到国际领先水平。核心优势:公司核心技术人员拥有近二十年不同基质的基球开发和官能化的丰富技术经...
点击进入详情页
本回答由苏州蓝晓生物科技有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询