[MFC] WM_TIMER 예제
// Message Map
BEGIN_MESSAGE_MAP(CDlgDlg, CDialog)
...
ON_WM_TIMER()
END_MESSAGE_MAP()
...
// Timer ID constants.
const UINT ID_TIMER_ONE = 0x1001;
const UINT ID_TIMER_TWO = 0x1000;
// Start the timers.
void CDlgDlg::StartTimer()
{
// Set timer for Minutes.
SetTimer( ID_TIMER_ONE, 60 * 1000, 0 );
// Set timer for Seconds.
SetTimer( ID_TIMER_TWO, 1000, 0 );
}
// Stop the timers.
void CDlgDlg::StopTimer()
{
// Stop both timers.
KillTimer( ID_TIMER_ONE );
KillTimer( ID_TIMER_TWO );
}
// Timer Handler.
void CDlgDlg::OnTimer( UINT nIDEvent )
{
// Per minute timer ticked.
if( nIDEvent == ID_TIMER_ONE )
{
// Do your minute based tasks here.
}
// Per minute timer ticked.
if( nIDEvent == ID_TIMER_TWO )
{
// Do your seconds based tasks here.
}
}
위의 방법외에도 다른 방법이 있다.
UINT SetTimer(
UINT nIDEvent,
UINT nElapse,
void ( CALLBACK* lpfnTimer )(HWND, UINT, UINT, DWORD) = NULL
) throw();
void CALLBACK TimerProc(HWND hWnd, UINT nIDEvent, UINT nElapse, DWORD dwTime)
{
CWnd *pWnd = AfxGetMainWnd();
CTestProgDlg *dlg = (CTestProgDlg *)pWnd;
dlg->ShowWindow(SW_SHOW);
}
'IT-개발,DB' 카테고리의 다른 글
[개발] 인터넷 익스플로러 열어본 페이지 목록 확인할 수 있는 곳 (0) | 2012.05.02 |
---|---|
[개발/MFC] UTF8로 파일저장하기 (0) | 2012.05.02 |
[개발/MFC] Sleep()함수 대신 프로그램 딜레이 시키기 (0) | 2012.05.02 |
[windows] 로그인하지 않고 실행되는 사용자 서비스 등록하기 (0) | 2012.05.02 |
[개발/MFC] "다음 계정으로 실행" 나오지 않게 만들기 (0) | 2012.04.10 |
댓글