VC++ メインループでのイベント監視方法
こんにちは。
VC++2008Expressでプログラムをしようと思っている初心者です。
以下、変な疑問があり、お尋ねしたいと思います。
よろしくお願いします。
Windowsアプリケーション Win32API
クラスで別スレッドを作成して、そのスレッドからのイベントを
WinMainループで受け取る方法ですが
通常皆様はどういう風にするのでしょうか?
クラスは、その他のプログラムでも流用可能で様々なアプリに対応しやすいようにしあげたいのですが。。
別スレッドでイベント発生時にWinMainにどのように教えるのが普通のやり方なんでしょうか?
僕の考えでは、WinMain関数内のループ内で常時イベント発生していないか
以下のように監視させるか
eventloop el;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
if(el::boolEvent){
イベント処理へ
}
}
とするのが良いか?
これだとクラスの関数、変数の使い方さえ分かるようにしておけば流用は簡単
なのかなと思いますが。。
メインのループ内にこんな監視を入れるようなプログラムをみたことないので
ナンセンスなのではと思います。
次に考えられるのは、クラスのイベント発生で作成したSendMessageを送って
メッセージ処理でイベント処理をさせるのが良いのかなって思いますが
これだと、流用するときに対応したMessage(キュー?ですかね)を作成しないといけなく
私的に分かりにくいなーって思います。。。
変なことで悩んで先に進まないのですが、皆様はどのようにコーディングされるのでしょうか?
ちなみにイベントというのは、RS232Cで受信があって、そのデータを加工したあとで
メモリに格納して格納しましたよってイベントです。
どうかよろしくお願いします。
お礼
こんにちは。 回答ありがとうございました。 大変参考になりました。本当にありがとうございます。 また何かありましたら、宜しくお願い致します。