+2  A: 

messagemap:

BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)
    ON_WM_VSCROLL()
END_MESSAGE_MAP()

method declaration:

class CMyListCtrl : public CListCtrl
{
    //...
protected:
    afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
    DECLARE_MESSAGE_MAP()
};

method implementation:

void CMyListCtrl::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
    //do some stuff here
    CListCtrl::OnVScroll(nSBCode, nPos, pScrollBar);
}
demoncodemonkey
This was great to detect the scrollbar scrolling, mousewheel was ignored, and the automatic scrolling happening when a CListCtrl item partially visible at the bottom is clicked (it is scrolled up so it is entirely visible) was ignored too. I'm editing my original question to include this partial answer. thanks!
rec
I do agree with you that the WM_VSCROLL doesn't get called in those circumstances, however if what I wrote answered your original question then you should have accepted my answer and then asked a different one.
demoncodemonkey
A: 

Mousewheel scrolling trigger OnMouseWheel.

Hokum
OnMouseWheel is triggered in the parent dialog. ON_NOTIFY_REFLECT can deal with this if I'm not mistaken, but I don't have a complete example.
rec
OnMouseWheel IS triggered in the derived class.I've successfully added a ON_WM_MOUSEWHEEL to my message map and implemented 'BOOL OnMouseWheel(UINT fFlags, short zDelta, CPoint point)'.
crimson13