1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
// XListBox.h
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
//XListBox.cpp
BEGIN_MESSAGE_MAP(CXListBox, CListBox)
ON_WM_VSCROLL()
END_MESSAGE_MAP()
void CXListBox::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
CView*pView = static_cast<CFrameWnd*>(AfxGetMainWnd())->GetActiveView();
switch(nSBCode)
{
case SB_BOTTOM :
break;
case SB_ENDSCROLL:
break;
case SB_LINEDOWN:
CXListBox::SetScrollPos(SB_VERT, GetScrollPos(SB_VERT)+1, TRUE);
// J'envoi des messages de type USER (le +20 c pour mon message perso)
// vers la vue
::SendMessage(pView->m_hWnd, WM_USER+20, GetScrollPos(SB_VERT), NULL);
break;
case SB_LINEUP:
CXListBox::SetScrollPos(SB_VERT, GetScrollPos(SB_VERT)-1, TRUE);
::SendMessage(pView->m_hWnd, WM_USER+20, GetScrollPos(SB_VERT), NULL);
break;
case SB_PAGEDOWN:
break;
case SB_PAGEUP:
break;
case SB_THUMBPOSITION:
break;
case SB_THUMBTRACK:
CXListBox::SetScrollPos(SB_VERT, nPos, TRUE);
::SendMessage(pView->m_hWnd, WM_USER+20, GetScrollPos(SB_VERT), NULL);
break;
case SB_TOP:
break;
}
} |