VC对话框程序响应时间消息(WM_TIMER)

2012-03-18 22:54:53|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:C/C++, MFC, 界面设计|来源:唯设编程网

在VC2008对话框应用程序中,VS为用户提供了方便的图形编程接口,使得为程序增加时间消息响应函数非常方便,本文将通过实际源代码实现一个定时器消息(WM_TIMER)循环的对话框程序,该程序包含了增加对话框消息WM_TIMER响应,定制消息响应函数,启动定时器,结 束定时器等功能。

1. 选中对话框,然后在属性窗口切换到消息选项卡,在WM_TIMER节点处添加对应的响应函数即可,如图:

VC增加WM_TIMER消息响应函数

2. 直接在生成的消息响应函数中增加你需要处理的时间定时器,代码如下:

void CglGobangDlg::OnTimer(UINT_PTR nIDEvent)
{
    switch (nIDEvent)
    {
    case IDT_REDRAW: //处理重绘定时器
        DrawImpl::setAngle(DrawImpl::getAngle()+1.0f);
        this->Invalidate();
        break;    
    }
    CDialog::OnTimer(nIDEvent);
}

其中的IDT_REDRAW为用户定义的一个定时器,读者也可以定义多个定时器。定时器ID的预定义:

//重绘定时器ID
#define IDT_REDRAW 20120317

3. 增加启动消息循环(定时器)的函数:

void CglGobangDlg::OnRepeat()
{    
    //一个1秒触发一次的定时器    
    SetTimer(IDT_REDRAW,100,NULL);
}

4. 停止消息循环(定时器)的函数

void CglGobangDlg::On32780()
{
    //停止自动重绘的定时器
    KillTimer(IDT_REDRAW);
}

至此,一个实现定时器消息(WM_TIMER)循环的对话框程序便完成了,该程序包含了增加对话框消息WM_TIMER响应,定制消息响应函数,启动定时器,结束定时器等功能,基本能够满足常用的定时器需求了。VS为用户提供了方便的图形编程接口,从而省去了用户自己定义繁杂的消息处理函数的工作。

发表评论0条 】
网友评论(共?条评论)..
VC对话框程序响应时间消息(WM_TIMER)