MFC中用c++语言实现进度条和定时器

一.使用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哈哈~至此进度条和定时器基本运用就完成了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值