2011-01-31 10 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

OK。私はそれを調べます。途中で返事をありがとう。 – DeadCapacitor

関連する問題