2009.07.27 API TIMER
/***********************************************************************************************************
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를 사용해서 딜레이를 줘서 버그를 없앨수 있다.
*/
************************************************************************************************************/