您的位置:程序门 -> vc/mfc -> 基础类



关于ontimer和settimer!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于ontimer和settimer!
发表于:2007-06-23 10:23:57 楼主
void   cactivexclockctrl::ontimer(uint   nidevent)
{
invalidatecontrol(null);
//colecontrol::refresh();
colecontrol::ontimer(nidevent);

}
我对ontimer不是太清楚,nidevent的作用是什么?
invalidatecontrol(null);是不是redraw的意思,可是我设计的时钟总是不更新时间呢,除非手动改变大小时会更新时间。
是不是我的interval没有设置好?
相关程序如下:
int   cactivexclockctrl::oncreate(lpcreatestruct   lpcreatestruct)
{
if(colecontrol::oncreate(lpcreatestruct)==-1)
return   -1;
//建立定时器,时间间隔为m_updateinterval的值
settimer(1,   (uint)m_updateinterval,   null);
return   0;
}
发表于:2007-06-23 11:53:151楼 得分:0
nidevent的作用是什么?
===============================================
settimer(1,   (uint)m_updateinterval,   null);
里面的1就是和ontimer的参数nidevent对应的啦。
也可以使用settimer(2,   3000,   null);
settimer(3,   2000,   null);
可以设定多个,ontimer里用nidevent进行区分,
switch(nidevent)
{
case   1:
...............
break;
case   2:
...............
break;
case   3:
...............
break;
}
发表于:2007-06-23 14:23:172楼 得分:0
nidevent的作用是什么?
===============================================
你可以设置多个时间控件,
nidevent这个参数用来标识这些不同的控件
发表于:2007-06-23 15:34:153楼 得分:0
nidevent的作用是什么?
===============================================
您可以在您的的程序中设置多个定时器,他们发送的都是wm_timer消息,wtimerid   =   wparam;
所以当使用了多个定时器的情况下,在响应wm_timer时,一定要要先检查wtimerid(也就是在settimer()的第一个参数指定的,也就是ontimer(uint   nidevent)的参数)。

settimer(1,   (uint)m_updateinterval,   null);
里面的1就是和ontimer的参数nidevent对应的啦。
也可以使用settimer(2,   3000,   null);
settimer(3,   2000,   null);
可以设定多个,ontimer里用nidevent进行区分,
switch(nidevent)
{
case   1:
...............
break;
case   2:
...............
break;
case   3:
...............
break;
}
invalidatecontrol(null)让整个控件redraw,您把colecontrol::ontimer(nidevent);注释掉试试
发表于:2007-06-25 10:46:404楼 得分:0
可以redraw,但是无法由时钟自动redraw啊.
希望有人帮忙啊。


快速检索

最新资讯
热门点击