一.使用VS2015创建新项目->MFC应用程序->基于对话框
二.在对话框中添加Progress Control控件和一个Button控件
三.双击“启动”Button进入代码编辑,添加如下代码:
void CProgressBarAndTimerDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
/*
CProgressCtrl *m_progressctrl = (CProgressCtrl *)GetDlgItem(IDC_PROGRESS1);
m_progressctrl->SetRange32(1, 100);
for (int i = 0; i < 100; i++)
{
m_progressctrl->OffsetPos(1);
Sleep(100);
} */ //此函数单纯的只是测试进度条
m_progressctrl.SetRange32(1, 100);
timer2 = SetTimer(2, 100, NULL); //定时器2,时间100毫秒
timer = SetTimer(1,10000,NULL);//定时器1,时间10000毫秒
m_progresscurpos = 1;
}
四.添加OnTimer(UINT_PIR nIDEvent)函数,代码如下:
void CProgressBarAndTimerDlg::OnTimer(UINT_PTR nIDEvent)
{
if (nIDEvent == 1)//定时器1达到条件
{
::MessageBox(NULL, "时间到了", "", 0);
KillTimer(timer);//当定时器1产生后立即关闭
}
else if (nIDEvent == 2)//定时器2达到条件
{
m_progressctrl.SetPos(m_progresscurpos);
m_progresscurpos++;
if (m_progresscurpos == 100)
{
KillTimer(timer2);
}
}
CDialogEx::OnTimer(nIDEvent);
}
注意:在头文件中添加OnTimer()函数声明:
afx_msg void OnTimer(UINT_PTR nIDEvent);//在xxxxDlg.h文件中声明
在添加成员变量:
CProgressCtrl m_progressctrl;
UINT_PTR timer;
UINT_PTR timer2;
int m_progresscurpos;
在定义DoDataExchange(CDataExchange* pDX)
函数:
void CProgressBarAndTimerDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_PROGRESS1, m_progressctrl);
}//此函数在xxxDlg.cpp文件中可以找到
O(∩_∩)O哈哈~至此进度条和定时器基本运用就完成了