複数のウィンドウのそれぞれのドキュメントに別々のタイマーを作動させるには

[戻る]
はまち 2002/05/20(月) 02:04:04
////////////////////////////////////////////////////////////////////////////////
    
    開発環境 : Visual C++ 6.0 Service Pack 3
    動作環境 : Windows 98 Second Edition
    MFC使用 MDIベース

////////////////////////////////////////////////////////////////////////////////
ツールバー上に「スタート」と「ストップ」の2つのボタンをつくり、これらを押すことでゲー
ムが動き始めたり止まったりするようなプログラムを作りたいと思っています。SDIではできた
のですが、これをMDIで作り、複数のウィンドウがあるときに、あるウィンドウではゲーム動か
して、あるウィンドウでは止める、というようなことができるようにしたいです。SetTimerを
CChildFrameクラス内で行って、OnTimer()関数内からゲームの処理が書いてあるドキュメント
クラスの関数に命令を出そうと思ったのですが、CChildFrameのGetActiveDocument()関数だ
とアクティブになっているドキュメントのポインタしか取得できないと思います。複数のウィン
ドウのそれぞれのドキュメントに別々のタイマーを作動させるにはどのようにすればよいのでし
ょうか。よろしくお願いします。

PAI 2002/05/20(月) 02:42:08
タイマーをViewが管理すればいいのではないでしょうか?

はまち 2002/05/22(水) 09:43:34
PAIさん、お返事ありがとうございました。僕からの返事が遅れてすみません。
PAIさんの書込みを見た後、なんでこのことに気づかなかったんだろうと、つくづく思いまし
た。その後、すぐにViewでタイマーを管理するものに作り変えました。
 あの日から、2・3日、なんとかタイマーを動かそうと作っているところなのですが、
なぜか、うまく行きません。タイマーの動きが、なぜかおかしく、あるとき、動いてたかと
思うと、いきなり止まったりなどします。原因がタイマーの管理にあるのか、ドキュメント
クラスのゲームのプログラムに問題があるのか、まだわかりません。
 そこで、もしよろしければ教えていただきたいのですが、デバックでひとつひとつ調べて
行くと、プログラムの動きがおかしくなり始めると、変数ウィンドウのいくつかの変数の数値の
右に「・」がついているようです。例えば、ある変数「a」があったとき、

変数   値
a        3・

みたいな表示になっています。この「・」はどういう意味なのでしょうか。
プログラム自体の動きは、なにがおかしいのかよくわからないのですが、どうも、メモリーを
動的に確保しすぎてしまい、メモリーが足らなくなってしまっているような気がします。

なにかわかればよろしくお願いします。

Bun 2002/05/22(水) 11:54:39
>この「・」はどういう意味なのでしょうか。

(ばけちゃって)
文字として表現できないコードなのではないかな。

はまち 2002/05/22(水) 13:13:21
Bunさん、いつもお世話になってます。

>(ばけちゃって)
>文字として表現できないコードなのではないかな。

やはりそういう感じなのですね。僕のプログラムでは、普通にプログラムを動かしている時は、「・」がついてなかったのに、おかしくなったあたりから、急につき始めるみたいです。

もう一息調べてみようと思います。

はまち 2002/06/03(月) 00:32:19
タイマーを複数動かすことができるようになりました。原因はぜんぜん関係のないプログラム
上のバクでした。さんざん、CALLBACK関数や、ステップ・インなどを繰り返していたのです
が、全く違うところに問題があったようです。お騒がせしました。
PAIさん、BUNさん、ありがとうございました。

はまち 2002/06/03(月) 00:33:30
[[解決]]
解決チェック忘れです。

古いスレッドには追加発言できません。