WideStudio/MWT Logo
WideStudio/MWT
Programming Guide
WideStudio/MWT Index
Table of contents


使用计时器

通过计时器对象,可以在一段时间后或每隔一定时间执行指定的操作。

计时器类 函数
WSDtimer WSGIappTimer()



在一段时间后执行指定的操作

如果想在一段时间后执行指定的操作,首先,准备好通过计时器启动的计时器处理函数。 然后,在计时器对象中登录计时器处理函数。

计时器登录成员函数 功能
addTriggerProc() 登录计时器处理函数
delTriggerProc() 删除计时器处理函数

#include 
//计时器启动处理函数的例子
void triggerHandler(unsigned char clock,void* data){
   //clock:以250ms 为单位增加的计时器设置
   //data:计时器登录时传递的数据

   //用户指定的处理...
}

void event_procedure(WSCbase* obj){
  //下面指定的数据,将被传递给计时器处理函数。
  void*  data = (void*)1234;
  //在计时器中登录一段时间后执行的处理函数 //1000ms后启动
  long id = WSGIappTimer()->addTriggerProc( triggerHandler,WS1000MS,data );
  //中途停止计时器
  WSGIappTimer()->delTriggerProc( id );
}

triggerHandler() 函数中记载了当被计时器启动时所需要执行的处理。 通过addTriggerProc()函数的第三个参数void*向triggerHahdler()函数 传递数据。addTriggerProc()返回计时器处理函数的ID。如果需要终止 计时器处理函数,在delTriggerProc()中指定相应的ID。

与事件处理不同是,计时器处理函数不会调用更新对象处理。如果变更了 对象属性值等,通过调用update()函数更新对象绘图。

//计时器启动处理函数的例子
void timerHandler(unsigned char clock,void* data){
   WSCbase* object = (WSCbase*)data;
   object->setProperty(WSNlabelString,"时间");
   object->update(); //更新对象绘图
}



每隔一段时间后执行指定的操作

如果想在每隔一段时间后执行指定的操作,首先,准备好通过计时器启动的计时器处理函数。 然后,在计时器对象中登录计时器处理函数。

计时器登录成员函数 功能
addTimerProc() 登录计时器处理函数
delTimerProc() 删除计时器处理函数

#include 
//计时器启动处理函数的例子
void timerHandler(unsigned char clock,void* data){
   //clock: 以250ms 为单位增加的计时器设置
   //data:计时器登录时传递的数据

   //用户指定的处理...
}

void event_procedure(WSCbase* obj){
  //下面指定的数据,将被传递给计时器处理函数。
  void*  data = (void*)1234;
  //在计时器中登录每隔一段时间后执行的处理函数 //每500ms启动
  long id = WSGIappTimer()->addTimerProc( timerHandler,WS500MS,data );
  //中途停止计时器
  WSGIappTimer()->delTimerProc( id );
}

timerHandler() 函数中记载了当被计时器启动时所需要执行的处理。 通过addTimerProc() 函数的第三个参数void*向timerHandler()函数 传递数据。addTimerProc() 函数返回计时器处理函数的ID。如果需要终止 计时器处理函数,在delTimerProc()中指定相应的ID。

与事件处理不同是,计时器处理函数不会调用更新对象处理。如果变更了 对象属性值等,通过调用update()函数更新对象绘图。 指定的时间间隔(WS250MS,WS500MS,WS750MS等)以250ms为单位增加。

//计时器启动处理函数的例子
void timerHandler(unsigned char clock,void* data){
   WSCbase* object = (WSCbase*)data;
   object->setProperty(WSNlabelString,"时间");
   object->update(); //更新对象绘图
}


Document Release 3.90 for WideStudio/MWT ver 3.90, Jul 2005


WideStudio/MWT documents index | Table of contents

Copyright(C) WideStudio/MWT Development Team, 1999-2005 Last modified: Jul 31, 2005