LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
{
 HDC hdc;
 PAINTSTRUCT ps;
 SYSTEMTIME st;
 static TCHAR sTime[128];

 switch(iMessage)
 {
 case WM_CREATE:
  SetTimer(hWnd,1,1000,NULL);
  return 0;
 case WM_TIMER:
  GetLocalTime(&st);
  wsprintf(sTime,TEXT("지금 시간은 %d:%d:%d입니다."),st.wHour,st.wMinute,st.wSecond);
  InvalidateRect(hWnd,NULL,TRUE);
  return 0;
 case WM_PAINT:
  hdc=BeginPaint(hWnd,&ps);
  TextOut(hdc,100,100,sTime,lstrlen(sTime));
  EndPaint(hWnd,&ps);
  return 0;
 case WM_DESTROY:
  KillTimer(hWnd,1);
  PostQuitMessage(0);
  return 0;
 }
 return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

자, 여기서
UINT SetTimer(HWND hWnd,UINT nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc);
에 대해 알아보도록하자.

nIDEvent는 타이머의 번호를 지정한다.
uElapse는 타이머의 주기를 설정한다. 단위는 1/1000초. == 1초에 한번씩 타이머 메시지가 hWnd로 전달된다.
10000이면 10초에 한번씩 타이머 메시지가 발생한다.
TIMERPROC lpTimerFunc는 타이머 메시지가 발생할 때마다 호출될 함수를 지정. 사용하지 않을경우 NULL.

'Programming > Visual C++' 카테고리의 다른 글

그래픽 1. GDI Object  (0) 2011.06.30
기타. SendMessage - Message 강제 호출  (0) 2011.06.30
기타. WM_CREATE  (0) 2011.06.29
입력5. 마우스  (0) 2011.06.29
입력3. TranslateMessage  (0) 2011.06.29

+ Recent posts