0

リソースIDが追加され、WM_TIMERメッセージに基づくタイマーを使用しています。DrunkenDragon()onのようなルーチンを呼び出したいのですが、呼び出されOnTimer()た後は1回だけSetTimer(id,10sec,NULL)です。KillTimer()内部DrunkenDragon()ルーチンへの呼び出しで解決策が修正されることはわかっています。これで大丈夫ですか、それともタイマーで素晴らしいものを見逃していますか?

4

3 に答える 3

0
int CYourDialog::OnInitDialog()
{
   __super::OnInitDialog();

   SetTimer(0x10, 10000, NULL);

   return true;
}

void CYourDialog::OnTimer(UINT_PTR ignore)
{
   DrunkenDragon();
}

そしてON_WM_TIMER、メッセージマップにあることを確認してください。

于 2012-07-14T04:54:55.133 に答える
0

欠落しているものは何もなく、システムに KillTimer を使用して WM_TIMER メッセージの生成を停止する必要があります。

CreateTimerQueueTimer を使用して、コールバックが 1 回だけ呼び出されるようにパラメーターを設定することもできます。

詳しくはこちらをご覧ください。

于 2012-07-15T12:50:57.030 に答える