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

解決


MAZIO  2003-10-15 04:46:37  No: 52297  IP: [192.*.*.*]

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  IP: [192.*.*.*]

void XXX::OnTimer(UINT nIDEvent) {

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

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

       メッセージ文
  }
}

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

編集    削除
MAZIO  2003-10-16 04:28:47  No: 52299  IP: [192.*.*.*]

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

編集    削除