C/C++/API

2009.07.27 API TIMER

꿀꿀이냐옹이 2009. 7. 27. 17:09
반응형

/***********************************************************************************************************

  LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM IParam)
  {            
  HDC hdc;
  PAINTSTRUCT ps;
  SYSTEMTIME st;
  static TCHAR sTime[128];
 
 switch(iMessage)
 {
  case WM_CREATE:           //윈도우를 처음 생성하면 만들어지는 이벤트 (초기화)
   SetTimer(hWnd,1,1000,NULL);
   SendMessage(hWnd,WM_TIMER,1,0);
   return 0;

  case WM_TIMER:           //1초당 발생하는 타이머의 내용설정
   GetLocalTime(&st);         //시스템타임을 받는다(현재시간을 받음)
   wsprintf(sTime,TEXT("지금 시간은 %d시%d분%d초입니다"),st.wHour,st.wMinute,st.wSecond);
                                      //윈도우에서 printf처럼 사용하려면 wsprintf   
   InvalidateRect(hWnd, NULL, TRUE);     //TRUE면 이동 FALSE면 복사
   return 0;
  
  case WM_PAINT:          //DC값을 받아오고 DC값을 반환 한다      
   hdc=BeginPaint(hWnd,&ps);
   TextOut(hdc,250,250,sTime,lstrlen(sTime));
                                    //sTime을 sTime의 길이만큼 불러온다. (좌표 100,100)위치에
   EndPaint(hWnd,&ps);
   return 0;

  case WM_DESTROY:          //소멸, 리소스 반환
   KillTimer(hWnd,1);
   PostQuitMessage(0);
   return 0;
  
 }
  
   return(DefWindowProc(hWnd,iMessage,wParam,IParam));
}
/*
프로그램을 실행시키면 1초후에 시간이 뜨는데 실행과 동시에 시간을 뜨게 하기 위해서는 SendMessage를 사용
프로그램을 만들다가 버그 발생시 SendMessage를 사용해서 딜레이를 줘서 버그를 없앨수 있다.
*/
************************************************************************************************************/

반응형