1

ClistCtrl から継承するクラス ClistCtrlEx クラスがあります。

私は追加します

  • メッセージテーブルへの ON_WM_TIMER()
  • オンタイマー機能

しかし、その SetTimer 関数プログラムへの呼び出しの前に、イベント ID 45 で WM_TIMER メッセージを受け取り、SetTimer を呼び出したときに WM_TIMER をまったく送信しません。

どうすればデバッグを開始したり、問題を修正したりできますか?

4

1 に答える 1

5

この KB 記事は適切と思われます: PRB: OnTimer() Is Not Calledly for a List Control .

基本的に、リストコントロールは独自のタイマーを設定し、その WM_TIMER ハンドラーはKillTimer()ID に関係なく設定するため、イベント ID が自分のものでない場合にのみデフォルトハンドラーを呼び出すことをお勧めします。

void CMyListCtrl::OnTimer(UINT nIDEvent)
{
   if (nIDEvent == m_myTimerID)
   {
       // handle timer event
   }
   else
   {
      CListCtrl::OnTimer(nIDEvent);
   }
}
于 2012-08-30T07:10:29.450 に答える