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);
}
posted @ 2020-03-16 22:06  N.everever  阅读(173)  评论(0)    收藏  举报