반복적으로 또는 주기적으로 뭘 하려면, timer 또는 thread 를 쓴다.
- timer : 주기적으로
- thread : 단독으로 무한 반복
여기서 timer 를 알아본다
3가지 기본 함수 가 있다.
1. SetTimer : Timer 시작
2. OnTimer : Timer 수행
3. KillTImer : Timer 끝
사용 방법
=====================
1. 헤더파일에 함수를 선언
class CDlg_Main : public CDialog
{
// 생략
public:
afx_msg void OnTimer(UINT nIDEvent);
// 생략
}
=====================
2. 시작 - SetTimer
함수 정의는
UINT_PTR SetTimer(
[in, optional] HWND hWnd,
[in] UINT_PTR nIDEvent, // 사용자 임의로 부여 하는 순
[in] UINT uElapse, // ms 주기를 같는 반복 주기 , 1000 이면 1초 마다 실행 한다.
[in, optional] TIMERPROC lpTimerFunc
);
인데, 보통 처음것과 마지막것은 옵션이라 잘 안쓴다
사용 보기 >
// ※ 메시지 맵에 등록할 내용.
BEGIN_MESSAGE_MAP(CDlg_Main, CDialog)
// 생략
ON_WM_TIMER() // <--- 이것 등록 하셔요. 때가 되면, OnTimer() 를 불러라고 지정해주는 것.
// 생략
END_MESSAGE_MAP()
BOOL CDlg_Main::OnInitDialog()
{
// 생략
// ※ 타이머 시작
SetTimer(1,100,NULL); //////// Timer 시작, 주기 100= 100 ms
SetTimer(2,1000,NULL); //////// Timer 시작, 주기 1000= 1 s
// 생략
}
=====================
3. 실행 - OnTimer
사용 보기 >
void CDlg_Main::OnTimer(UINT nIDEvent)
{
switch(nIDEvent)
{
case 1: // 주기: 100 ms
// do job 1
break;
case 2: // 주기: 1 sec
// do job 2
break;
}
}
=====================
4. 끝
사용 보기 >
KillTimer(1);
KillTimer(2);
=====================
=====================
'개발 > mfc' 카테고리의 다른 글
[mfc] control 값 가져오기 설정 하기, sample source (0) | 2023.10.20 |
---|---|
Visual Studio 2010 C++ code formatter (2) | 2023.10.19 |
mfc , 자식 Dialog 만들기 - vs2010, sample source (0) | 2023.09.03 |
mfc thread 만들기 - vs 2010, sample source (0) | 2023.09.03 |
mfc AfxMessageBox() 로, 문자, 숫자 표시 하기, sample source (0) | 2023.08.24 |