OnTimerで変数の値を変えると・・

解決


MAZIO  2003-10-15 04:46:37  No: 52297

VC6.0の勉強を始めた超初心者です。
いきなり質問ですが、タイマー(OnTimer)内で
変数(スタティック変数・メンバ変数ともに)の値を変更しても
なぜか初期化された状態で繰り返されます。

static int testwork=0;
void XXX::OnTimer(UINT nIDEvent) {

  if (!(testwork)) {
       メッセージ文
  }
  testwork = 1;
}

これだと一回だけメッセージ文が表示されそうなものなんですが、
毎回表示されてしまいます・・


tetuo  2003-10-15 07:08:19  No: 52298

void XXX::OnTimer(UINT nIDEvent) {

  static int testwork=0;  // 関数の中に書きましょう

  if (!(testwork)) {
       testwork = 1;  // メッセージボックスを表示する前に書きましょう

       メッセージ文
  }
}

恐らくメッセージボックスを使ってメッセージを表示してると思いますが
メッセージボックスを表示してる間にもどんどんタイマイベントは発生しているのですよ


MAZIO  2003-10-16 04:28:47  No: 52299

スミマセン。確かにそのようです。
違う方法で確認したら問題ありませんでした。
Cのprint文のような感じで気軽に使っていたのが悪かったのですね。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加