- 締切済み
スレッドでWM_TIMERを受け取れない
スレッドの中でタイマー処理を行いたいのですが、WM_TIMERが受け取れません。 というか、メッセージマップ内でON_WM_TIMER()と記述すると、型が違うとエラーが出てしまいます。 どなたか、スレッド内でタイマー処理を行うすべを教えて下さい。よろしくお願いします。 CWinThreadを派生したクラス内での処理です。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- terra5
- ベストアンサー率34% (574/1662)
回答No.2
CreateEventでイベントオブジェクトを作って,スレッドはWaitForSingleObjectでイベント待ちににしておく。 SetTimerのコールバックでSetEventを呼ぶ。 で、できるかな?
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.1
>スレッドの中でタイマー処理を行いたいのですが、WM_TIMERが受け取れません。 というか、WM_ってウィンドウメッセージという意味なんですが。ウィンドウがなければWM_TIMERは受け取れません。 そもそも、どういう風にSetTimerを呼んだんですか? 解決方法は、 1.スレッドに新たなCWndオブジェクトを作成し、CWnd::SetTimer()をコールする。 2.::SetTimer()でコールバック関数を使う だと思うんですが。