mfc -(타이머) OnTimer , KillTimer > MFC Q&A

본문 바로가기
사이트 내 전체검색

MFC Q&A

mfc -(타이머) OnTimer , KillTimer

페이지 정보

profile_image
작성자 aban
댓글 0건 조회 32,703회 작성일 10-07-27 13:21

본문

타이머는 안쓰는곳이 없을정도로 자주이용된다.
특정 시간내에 메크로,이동이나 프로그램 실행등등..


우선 타이머를 쓰기위해서는 설정을 해줘야한다.

타이머설정은 윈도우 시작하고나서 작동하게해야하므로 OnCreate()에 만들어 놓겠습니다.

mfc에서 보면 아래문장처럼 저렇게 짧지는 않다 가독성을 위하여 줄여서 적어놓것이다.

OnCreate()
{
SetTimer(1,500,NULL);

return 0;
}

SetTimer() 에서 "1"은 타이머 순서또는 식별자라고 생각하면된다.
500 이란 소린 1/1000 초이다. 1000이면 1초란 소리이다.
NULL 이면 OnTimer() 호출한다 다른함수를 사용하면 그해당함수를 실행한다

이제 OnTimer() 을 만들어서 프로그램을 돌려보자

SetTimer() 함수에서는 정해준 주기대로 동작하고 OnTimer() 는 거기에 맞춰서 반복수행된다.

예제) : 아래예제처럼 하면 사람이 춤추분것처럼 보인다.

멤버변수 : int m_i

void CTimerView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default

CClientDC dc(this);

m_i++;
if(m_i %2 ==1)  // m_i 값을 증가시키고 여기서는 그값을 나눈다.
{
dc.TextOut(100,100," 0  ");
dc.TextOut(100,115," ~|~  ");
dc.TextOut(100,130," <>  ");
}
else
{
dc.TextOut(100,100,"  0  ");
dc.TextOut(100,115," ^|~  ");
dc.TextOut(100,130,"  />  ");

}

CView::OnTimer(nIDEvent);
}


그리고 윈도우가 종료될때 타이머도 종료시켜주어야한다.
OnDestroy() 를 이용하여 종료시켜주자


void CTimerView::OnDestroy()
{
CView::OnDestroy();

KillTimer(1);  // 숫자 1은 타이머의 번호이다.
// TODO: Add your message handler code here

}

댓글목록

등록된 댓글이 없습니다.

Total 95건 1 페이지

검색

회원로그인

회원가입

사이트 정보

컴퓨터 정보,윈도우즈,리눅스,포토샵,3ds
맥스,프로그래밍 강좌팁

접속자집계

오늘
209
어제
558
최대
5,287
전체
630,314
Copyright © www.qdata.co.kr All rights reserved.