MFC.定时器

.h

...
#define WM_USER_TIMER1 (WM_USER + 12345) /*定时器ID值*/
#define WM_USER_TIMER2 (WM_USER + 12346) /*定时器ID值*/
...
class CMFC?Dlg : public CDialogEx
{
...
public:
    afx_msg void OnBnClickedButton1();
    afx_msg void OnBnClickedButton2();
    afx_msg void OnTimer(UINT_PTR nIDEvent);
};
.cpp

...
BOOL bTimer1 = FALSE;
void CMFC?Dlg::OnBnClickedButton1()
{
    // 定时器1

    if (!bTimer1)
    {
        bTimer1 = TRUE;
        SetTimer(WM_USER_TIMER1, 1000, 0);
    }
    else
    {
        bTimer1 = FALSE;
        ::KillTimer(GetSafeHwnd(), WM_USER_TIMER1);
        ::SetWindowText(GetSafeHwnd(), _T("定时器1 退出"));
    }
}

BOOL bTimer2 = FALSE;
void CALLBACK TimerProc2(HWND hWnd, UINT nMsg, UINT uTimerid, DWORD dwTime)
{
    CTime ctNow = CTime::GetCurrentTime();
    CString str = ctNow.Format(_T("%Y-%m-%d %H:%M:%S"));
    ::SetWindowText(hWnd, _T("定时器2 ") + str);
}
void CMFC?Dlg::OnBnClickedButton2()
{
    // 定时器2

    if (!bTimer2)
    {
        bTimer2 = TRUE;
        SetTimer(WM_USER_TIMER2, 1000, TimerProc2);
    } 
    else
    {
        bTimer2 = FALSE;
        ::KillTimer(GetSafeHwnd(), WM_USER_TIMER2);
        ::SetWindowText(GetSafeHwnd(), _T("定时器2 退出"));
    }
}

void CMFC?Dlg::OnTimer(UINT_PTR nIDEvent)
{
    // 定时器1

    CTime ctNow = CTime::GetCurrentTime();
    CString str = ctNow.Format(_T("%Y-%m-%d %H:%M:%S"));
    ::SetWindowText(GetSafeHwnd(), _T("定时器1 ") + str);

    CDialogEx::OnTimer(nIDEvent);
}

猜你喜欢

转载自www.cnblogs.com/dailycode/p/12507226.html