WEB开发网
开发学院软件开发VC 非窗口类中使用定时器的方法及相关知识的介绍 阅读

非窗口类中使用定时器的方法及相关知识的介绍

 2006-07-20 11:38:11 来源:WEB开发网   
核心提示: 首先做在我们新建项目的主窗口上添加一个Label控件,用来显示时间,非窗口类中使用定时器的方法及相关知识的介绍(7),接着⑴用函数SetTimer设置一个定时器,函数格式如下:UINT SetTimer( UINT nIDEvent,UINT nElapse,void (CALLBACK

首先做在我们新建项目的主窗口上添加一个Label控件,用来显示时间。接着

⑴ 用函数SetTimer设置一个定时器,函数格式如下:

UINT SetTimer( UINT nIDEvent,
    UINT nElapse,
    void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD));

这个函数是CWnd类的一个成员函数,其参数意义如下:

nIDEvent: 为设定的定时器指定的定时器标志值,设置多个定时器的时候,每个定时器的值都不同,消息处理函数就是通过这个参数来判断是哪个定时器的。这里我们设定为1。

nElapse: 指定发送消息的时间间隔,单位是毫秒。这里我们设定为1000,也就是一秒。

lpfnTimer: 指定定时器消息由哪个回调函数来执行,如果为空,WM_TIMER将加入到应用程序的消息队列中,并由CWnd类来处理。这里我们设定为NULL。

最后代码如下:

SetTimer(1,1000,NULL);

⑵ 通过Class Wizard给主窗口类添加一个WM_TIMER消息的映射函数,默认为OnTimer(UINT nIDEvent)。

⑶ 然后我们就可以在OnTimer(UINT nIDEvent)的函数实现中添加我们的代码了。参数nIDEvent就是我们先前设定定时器时指定的标志值,在这里我们就可以通过它来区别不同的定时器,而作出不同的处理。添加的代码如下:

switch(nIDEvent)
  {
  case 1:
    CTime m_SysTime = CTime::GetCurrentTime();
    SetDlgItemText(IDC_STATIC_TIME,m_SysTime.Format("%Y年%m月%d日 %H:%M:%S"));
    break;
  }

代码中的IDC_STATIC_TIME就是我们先前添加的Label控件的ID。

至此,我们的电子钟的程序就完成了。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:窗口 使用 定时器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接