메뉴 바로가기

서브메뉴 바로가기

본문 바로가기

logo

C/C++/MFC
MFC의  Sleep(1000) 을 이용하면 정확한 1초를 얻지 못한다.
정확한 시간을 측정하기 위해서는 시스템 시간을 이용해야 한다.


                        CTime CurrentTime,  OldTime;
                        CTimeSpan TimeInterval;
                        BOOL bLoop;
                        bLoop  = TRUE;
                        OldTime = CTime::GetCurrentTime();
                        
                        while(bLoop){
                                MSG msg;
                                while(PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE)){
                                        switch(msg.message){
                                        case WM_QUIT:
                                        case WM_DESTROY:
                                        case WM_CLOSE:
                                                PostQuitMessage(0);
                                                return ;
                                                
                                        }
                                        TranslateMessage(&msg);
                                        DispatchMessage(&msg);
                                }
                                CurrentTime = CTime::GetCurrentTime();
                                TimeInterval = CurrentTime - OldTime;
                                
                                if(TimeInterval.GetSeconds()>1){
                                        bLoop = FALSE;
                                        
                                }
                        }