본문 바로가기
MFC

[MFC] 다이얼로그 기반 프로젝트에서 갱신 처리

by 카피마스터 2025. 3. 2.

타이머를 사용해서 갱신(WM_KICKIDLE 메시지도 사용해봤지만 호출되지 않을때가 있음)

 

1. 타이머 메시지 핸들러 추가

 

추가된 타이머 핸들러에 로직 추가

void CCrossPlatformTestDlg::OnTimer(UINT_PTR nIDEvent)
{
	// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.

	CDialogEx::OnTimer(nIDEvent);
}

 

3. Dialog의 OnInitDialog 에서 타이머 설정

BOOL CCrossPlatformTestDlg::OnInitDialog()
{
	...
    
    // 1번 타이머로 대략 30프레임 호출
    SetTimer(1, 1000 / 30, nullptr);
    return TRUE;
 }

 

4. 다이얼로그가 파괴되는 시점에 타이머를 제거

WM_DESTROY 핸들러 추가

 

추가된 OnDestory에서 KillTimer 호출

void CCrossPlatformTestDlg::OnDestroy()
{
	CDialogEx::OnDestroy();

	// TODO: 여기에 메시지 처리기 코드를 추가합니다.

	// 1번 타이머 제거
	KillTimer(1);
}