2012-03-18 22:54:53|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:C/C++, MFC, 界面设计|来源:唯设编程网
在VC2008对话框应用程序中,VS为用户提供了方便的图形编程接口,使得为程序增加时间消息响应函数非常方便,本文将通过实际源代码实现一个定时器消息(WM_TIMER)循环的对话框程序,该程序包含了增加对话框消息WM_TIMER响应,定制消息响应函数,启动定时器,结 束定时器等功能。
1. 选中对话框,然后在属性窗口切换到消息选项卡,在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为用户提供了方便的图形编程接口,从而省去了用户自己定义繁杂的消息处理函数的工作。