• 締切済み

スレッドでWM_TIMERを受け取れない

スレッドの中でタイマー処理を行いたいのですが、WM_TIMERが受け取れません。 というか、メッセージマップ内でON_WM_TIMER()と記述すると、型が違うとエラーが出てしまいます。 どなたか、スレッド内でタイマー処理を行うすべを教えて下さい。よろしくお願いします。 CWinThreadを派生したクラス内での処理です。

みんなの回答

  • 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()でコールバック関数を使う だと思うんですが。

関連するQ&A