일정 시간 뒤에 원하는 업무를 처리하기 사용합니다.
비슷한 기능으로 Sleep( millisecond ) 를 입력하는데요.
Sleep을 이용할 경우 해당 쓰레드 전체가 멈추어 버리고 그 멈춤에 따라 외부 인터럽트입력(키보드, 마우스, 등등)이
주어지게 되면 버퍼에 쌓였다가 한번에 처리되는 일이 발생하게 되버립니다.
그래서 그걸 방지하기 위해 Timer를 사용하는데 사용방법은 다음과 같습니다.
-등록
BEGIN_MESSAGE_MAP(CGroupChatWindow, CDialog) ... ON_WM_TIMER() ... END_MESSAGE_MAP() |
메세지 맵에 'ON_WM_TIMER()'를 등록
-타이머 시작
SetTimer(1394,1000,NULL); |
파라매터
1) Timer의 ID값
2) SetTimer후 몇 millisecond후 마다 실행 (반복실행)
3) 함수명, NULL 사용시 오버라이드 함수 'OnTimer()'로 작동됩니다.
반환값 : 핸들러
-선언
afx_msg void OnTimer(UINT nIDEvent); |
헤더파일에 선언해 줍니다.
-오버라이드 함수 내부
void CGroupChatWindow::OnTimer(UINT nIDEvent) limitLatencyClickAble = TRUE; break; KillTimer(1394); |
switch문을 사용하여 Timer의 ID를 구분하여 처리를 합니다.
SetTimer에 첫 파라매터에 1394를 적었기에 OnTimer( )에서는 switch문에 case로 1394를 적었습니다.
-타이머 중지
KillTimer(1394); |
타이머 아이디를 입력하면됩니다.
더욱 자세히 적어야 되겠지만 실질적 사용으로는 이것만 존재하면 됩니다.
출처 : http://sungho0459.blog.me/40135346581'컴퓨터 > 언어,프로그래밍' 카테고리의 다른 글
[VC++] MFC 기본 요점 정리 (0) | 2011.12.24 |
---|---|
[VC++] SetTimer()함수, KillTimer()함수 (0) | 2011.12.24 |
[MFC] WM_CLOSE, WM_DESTROY, WM_QUIT의 차이점 (0) | 2011.12.24 |
[HTML] 텍스트 박스를 이쁘게 만들기 (0) | 2010.10.18 |
[PHP] urlencode(), base64_encode() 함수 (0) | 2010.05.04 |