2011-01-31 5 views
0

가상 키를 처리하는 기본 창을 만들었습니다. 케이스 VK_UP은 9부터 거꾸로 세는 타이머를 초기화합니다. 0에 도달하거나 VK_DOWN을 누르면 타이머가 중지 될 수 있습니다. 문제는 내가 VK_UP으로 타이머를 초기화 할 때 타이머가 0에 도달 할 때까지 프로그램이 멈춘다는 것입니다. VK_DOWN으로 타이머를 어떻게 중단 (중단) 할 수 있습니까?가상 키를 사용하여 타이머 중지

항상 그렇듯이 검색을 시도했지만 아무 소용이 없습니다.

편집 : 여기에 윈도우 프로 시저의 :

void wait(unsigned TotalSeconds) 
{ 
    clock_t Wait(clock() + (TotalSeconds * CLOCKS_PER_SEC)); 
    while(clock() < Wait) 
    { 
     Sleep(1); 
    } 
} 

감사 :

unsigned Seconds(9); 
case WM_KEYDOWN: 
    { 
     switch(wParam) 
     { 
      case VK_UP: 
        { 
         while(Seconds > 0) 
         { 
          wait(1); 
          Seconds--; 
         } 
        } 
        break; 
     } 
     break; 
    } 

여기 내가 위에서 사용 된 wait() 방법입니다.

+0

창이있는 경우 창이나 winapi 태그를 추가하십시오 – ThomasMcLeod

+0

타이머를 시작할 코드를 표시하십시오. –

답변

2

카운트 루프가 아닌 실제 타이머를 사용하십시오. SetTimer()을 검토하십시오. Windows 용 이벤트 구동 프로그래밍 모델을 이해하는 것은 매우 중요합니다. Petzold와 같은 Windows 프로그래밍에 대한 모든 책에서 잘 다루고 있습니다.

+0

확인. 나는 그것을 들여다 볼 것이다. 그 답장을 보내 주셔서 감사합니다. – DeadCapacitor

관련 문제