Я вложил класс CListCtrl в свой собственный класс и использую его в нескольких диалогах и представлениях. Что я хочу сделать, это выполнить некоторый код, когда ClistCtrl прокручивается вертикально. Мне нужно, чтобы это было в самом подклассе CListCtrl.
Я могу обнаружить прокрутку, срабатывающую при взаимодействии с полосой прокрутки с помощью метода, предоставленного demoncodemonkey:
messagemap:
BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)
ON_WM_VSCROLL()
END_MESSAGE_MAP()
объявление метода:
class CMyListCtrl : public CListCtrl
{
//...
protected:
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
DECLARE_MESSAGE_MAP()
};
Реализация метода:
void CMyListCtrl::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
//do some stuff here
CListCtrl::OnVScroll(nSBCode, nPos, pScrollBar);
}
Но:
Прокрутка колесика мыши не срабатывает
OnVScroll.
происходит автоматическая прокрутка
когда элемент CListCtrl частично
видна внизу нажата (это
прокручивается вверх, поэтому элемент
полностью видно) не срабатывает
OnVScroll либо. Например:
При нажатии на элемент 9 ClistCtrl немного прокручивается, поэтому элемент полностью виден.