ClistCtrl から継承するクラス ClistCtrlEx クラスがあります。
私は追加します
- メッセージテーブルへの ON_WM_TIMER()
- オンタイマー機能
しかし、その SetTimer 関数プログラムへの呼び出しの前に、イベント ID 45 で WM_TIMER メッセージを受け取り、SetTimer を呼び出したときに WM_TIMER をまったく送信しません。
どうすればデバッグを開始したり、問題を修正したりできますか?
この 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);
}
}