;일정한 시간 간격으로 반복적인 작업을 하고 싶을 경우 사용.
*SetTimer
int g_count = 0; void CALLBACK MyTimerFunc(HWND hWnd, UINT nMsg, UINT_PTR nIDEvent, DWORD dwTime) { g_count++; HDC h_dc = GetDC(hWnd); TextOutA(h_dc, 10, 10 + g_count * 20, "Timer Test 1", 12); } // 사용자가 메시지를 처리하는 함수. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC h_screen_dc = ::GetDC(NULL); // 모니터 전체 화면용 DC HDC h_dc = ::GetDC(hWnd); // 현재 윈도우용 DC switch (message) { case WM_CREATE: SetTimer(hWnd, 1, 1000, MyTimerFunc); // 생성된 함수 호출. SetTimer(hWnd, 2, 1000, NULL); // WM_TIMER 메시지 발생. break; case WM_TIMER: TextOutA(h_dc, 100, 10 + g_count * 20, "Timer Test 2", 12); break; case WM_DESTROY: KillTimer(hWnd, 1); KillTimer(hWnd, 2); // 프로그램 종료 PostQuitMessage(0); break; default: // 자신이 처리하지 않는 메시지들의 기본 작업을 대신 처리해주는 함수. return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } | cs |
'::public > 윈도우즈 응용 프로그래밍' 카테고리의 다른 글
Direct2D 사용하기 (0) | 2019.09.25 |
---|---|
Direct2D (0) | 2019.09.25 |
오목 만들기(결과로직 없음) (0) | 2019.09.24 |
MessageBox (0) | 2019.09.24 |
Bitmap 복사 (0) | 2019.09.24 |