定时器的设置问题 ??????

kiang 2005-03-29 10:25:13
定时器可以设置为变量么 ?
比如 SetTimer(1,N,NULL);
每次计算给N一个变量能不能达到 更新定时器的目的啊 ?
...全文
222 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
kiang 2005-03-29
  • 打赏
  • 举报
回复
我是说同一个定时器可不可以时间间隔是个变量。
比如
int n=1;
while(n<100)
settimer(1,n,null);
else
killtimer(1);

是不是这样就达到效果了啊
oyljerry 2005-03-29
  • 打赏
  • 举报
回复
可以
legendhui 2005-03-29
  • 打赏
  • 举报
回复
当然可以了
najzni 2005-03-29
  • 打赏
  • 举报
回复
正解
老夏Max 2005-03-29
  • 打赏
  • 举报
回复
SetTimer函数在MSDN中说的很明白了,就是如果这个定时器已经存在,它先调用KillTimer,然后再SetTimer!
老夏Max 2005-03-29
  • 打赏
  • 举报
回复
可以!
richmain 2005-03-29
  • 打赏
  • 举报
回复
楼主做了一个死循环··
正确的作法应该是:

void YourView::OnInitialUpdate()
{
SetTimer(1,50,NULL);
}

void YourView::OnTimer(UINT nEventID)
{
Invalidate();
}
kiang 2005-03-29
  • 打赏
  • 举报
回复
楼上的什么意思啊 ?????
这样的话 就不是一个定时器了吧。

难道的你意思是说

SetTimer(1,n,NULL);
killtimer(1);
settimer(1,n+1,NULL)

这样循环下去?
4inSky 2005-03-29
  • 打赏
  • 举报
回复
楼主,你的想法是可行的,我有些程序就是使用一个定时器,不同的时间段做为控制变量.

但我建议你最好是在定时器中先杀掉定时器,然后在SetTimer,

否则,你的OnTimer处理时间可能会过长,如果你没有杀掉定时器,就会出现定时器的混乱.

kiang 2005-03-29
  • 打赏
  • 举报
回复
再顶一下
kiang 2005-03-29
  • 打赏
  • 举报
回复
回复人: vcmute() ( ) 信誉:100 2005-03-29 14:58:00 得分: 0


可通过timeSetEvent参数TIME_ONESHOT,每次只调一次,然后再设nDelay

SetTimer,设置间隔多长时间循环运行,而不是过多长时间后运行


能不能详细讲解一下啊。 我的目的是这样的。

好比:
一个人要走N短路, 每断路的距离跟人的速度都不一样。
我想根据人的速度和距离求出这段路需要的时间, 然后在这段时间内刷新屏幕,造成动画效果。
因此我想设置一个定时器,通过定时器来刷新屏幕。
你觉得还有别的号办法么 ?
kiang 2005-03-29
  • 打赏
  • 举报
回复
我是说同一个定时器可不可以时间间隔是个变量。
比如
int n=1;
while(n<100)
settimer(1,n,null);
else
killtimer(1);

是不是这样就达到效果了啊
============================
为什么要使用一个定时器呢,可以定义两个或者多个定时器啊

我要做的类似一个动画,如果每次都设置一个定时器,可能有上千个定时器。



vcmute 2005-03-29
  • 打赏
  • 举报
回复
可通过timeSetEvent参数TIME_ONESHOT,每次只调一次,然后再设nDelay

SetTimer,设置间隔多长时间循环运行,而不是过多长时间后运行
老夏Max 2005-03-29
  • 打赏
  • 举报
回复
UINT SetTimer(
HWND hWnd, // handle of window for timer messages定时器所属的窗口
UINT nIDEvent, // timer identifier定时器标志,区分不同的定时器
UINT uElapse, // time-out value定时间隔
TIMERPROC lpTimerFunc // address of timer procedure定时器处理函数
);
=====================
如果是SDK可以设置不同的定时器回调函数,如果是MFC,可以通过OnTimer函数的参数区别他们。
OnTimer( UINT nIDEvent );//其参数对应于SetTimer的第二个参数

老夏Max 2005-03-29
  • 打赏
  • 举报
回复
我是说同一个定时器可不可以时间间隔是个变量。
比如
int n=1;
while(n<100)
settimer(1,n,null);
else
killtimer(1);

是不是这样就达到效果了啊
============================
为什么要使用一个定时器呢,可以定义两个或者多个定时器啊

kiang 2005-03-29
  • 打赏
  • 举报
回复
楼上的 我英语不好啊。

能不能就我的例子说两句呢
xuzheng318 2005-03-29
  • 打赏
  • 举报
回复
The SetTimer function creates a timer with the specified time-out value.

Syntax

UINT_PTR SetTimer( HWND hWnd,
UINT_PTR nIDEvent,
UINT uElapse,
TIMERPROC lpTimerFunc
);
kiang 2005-03-29
  • 打赏
  • 举报
回复
怎么没有人搭理了呢 ?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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