2 qq 20572677 qq_20572677 于 2016.09.22 22:38 提问

MFC OnTimer定时器修改时间间隔的问题 3C

MFC对话框程序,用settimer(1,1000,NULL)创建定时器之后,如果想在程序其他位置修改定时器时间间隔,能不能用代码手动修改?还是一旦创建了定时器,就必须按照settimer中给定的时间间隔执行,无法修改?

5个回答

qq_31592883
qq_31592883   2016.09.23 01:19

SetTimer can reuse timer IDs in the case where hWnd is NULL.
这是msdn上的解释。
你可以试试,应该可以在任何地方都可以修改 timer ID= 相同的好的参数的。

caozhy
caozhy   Ds   Rxr 2016.09.22 23:54

其实你可以让timer使用你需要间隔的最大公约数。比如你的间隔可以是1秒,2秒,0.5秒,那么你的间隔可设置为0.5秒。
外加一个全局变量作为计数器
比如
private: int cnt = 0;
如果要2秒,而你的间隔是600毫秒,在ontimer写
cnt++;
if (cnt % 4 == 0) { 你的定时的代码 }

caozhy
caozhy 600毫秒->500毫秒
大约一年之前 回复
wind612
wind612   2016.09.23 10:11

要修改时间间隔,再执行一次settimer 函数就好了。

qq_20572677
qq_20572677   2016.09.23 16:31

有没有像C#中直接改timer1.interval这种的用某行代码直接修改???

lx624909677
lx624909677   Ds   Rxr 2016.10.18 15:30

时间间隔创建了不能修改吧,想修改就自己去写个线程

Csdn user default icon
上传中...
上传图片
插入图片