- ベストアンサー
システムボタンなどがクリックされている間、処理が止まらないようにしたい
VisualC++2005でWindows用のゲームを作成しています。 ウィンドウのメッセージループで、メッセージが無い間は メインの処理を行うという方法で作成しているのですが、 以下の条件で、処理が停止してしまい、処理に不都合が発生してしまい困っています。 ・タイトルバーがクリックされている間 ・タイトルバーの右クリックでメニューが表示されている間 ・タイトルバーのアイコン部分のクリックでメニューが表示されている間 ・「最小化ボタン」をクリックしている間 ・「閉じるボタン」をクリックしている間 ・タスクバーの実行アプリケーション部分の右クリックでメニューが表示されている間 上記の条件で、処理が停止してしまい「タイマーに依存している制御」「MIDI再生に依存している制御」で不都合が出てしまいます。 不都合部分を手直しすることで対応するのは、難しいと判断しています。 理由としては、上記の条件について、 一部ウィンドウメッセージで「発生の瞬間」を取得して 「処理が止まっている間の分だけ、タイマーの経過時間を差し引く」「音楽を止める」 などの対応が可能なのですが、 ウィンドウメッセージで取得できないものもあり、それについては対処できない状態です。 上記の条件において「処理を止めないようにする」という対応方法は存在しますでしょうか。 どなたかご教授よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- chie65536(@chie65535)
- ベストアンサー率44% (8812/19983)
回答No.2
お礼
ご回答ありがとうございます。 ワーカースレッドを作成するということは、 ウィンドウのメッセージループとは別にメイン処理を行うスレッドを作成するということでしょうか。 現在、そのような仕組みになっていませんので、 一度スレッドを分けた上で、優先度変更の実験を行ってみたいと思います。 ありがとうございました。