|
本帖最后由 cheating_plugin 于 2019-11-26 17:51 编辑
CRect rect;
GetWindowRect(&rect);
ScreenToClient(&rect);
rect.left = rect.right - GetSystemMetrics(SM_CXVSCROLL);
m_CScrollBar.Create(WS_VISIBLE | SB_VERT, rect, this, 4051);
m_CScrollBar.EnableScrollBar(ESB_ENABLE_BOTH);
m_CScrollBar.SetScrollRange(0, 1000);
m_CScrollBar.SetScrollPos(500);
void CMyListCtrl::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp)
{
// TODO: Add your message handler code here and/or call default
ShowScrollBar(SB_BOTH, FALSE);
CListCtrl::OnNcCalcSize(bCalcValidRects, lpncsp);
}
BOOL CMyListCtrl::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
// TODO: Add your message handler code here and/or call default
Scroll(CSize(0, -zDelta));
m_CScrollBar.SetScrollPos(500);
m_CScrollBar.Invalidate();
return CListCtrl::OnMouseWheel(nFlags, zDelta, pt);
}
void CMyListCtrl::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
if (4051 == pScrollBar->GetDlgCtrlID())
{
switch (nSBCode)
{
case SB_LINEUP://所要处理的CSliderCtrl控件ID
{
//处理
//AfxMessageBox(_T("SB_LINEUP"));
break;
}
case SB_LINEDOWN://所要处理的CSliderCtrl控件ID
{
//处理
//AfxMessageBox(_T("SB_LINEDOWN"));
break;
}
case SB_PAGEUP://所要处理的CSliderCtrl控件ID
{
//处理
//AfxMessageBox(_T("SB_PAGEUP"));
break;
}
case SB_PAGEDOWN://所要处理的CSliderCtrl控件ID
{
//处理
//AfxMessageBox(_T("SB_PAGEDOWN"));
break;
}
case SB_ENDSCROLL:
m_CScrollBar.SetScrollPos(500);
break;
default:
break;
}
}
m_CScrollBar.Invalidate();
CListCtrl::OnVScroll(nSBCode, nPos, pScrollBar);
}
什么都是好的,就是CScrollBar上面的箭头居然没有焦点?鼠标按下也没有SB_LINEUP消息,为什么? |
上一篇: map 好慢下一篇: 陷入死循环怎么办
|