100分求教 关于CScrollView的滑杆问题 我从CScrollView继承了一个类,现在需要用鼠标拖动滑杆时,视图移动固定距离(20)。怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 重载OnSroll()控制你的固定距离 试试。 void CYourView::OnHScroll(UINT nSBCode, UINT iPos, CScrollBar* pScrollBar) {static int iPosOld=0; if(nSBCode == SB_THUMBTRACK) { SCROLLINFO si; si.cbSize=sizeof(si); si.fMask=SIF_TRACKPOS; GetScrollInfo(SB_HORZ,&si); if(si.nTrackPos>iPosOld)si.nTrackPos=iPosOld+20; if(si.nTrackPos<iPosOld)si.nTrackPos=iPosOld-20; } if (m_ptScroll.x<0) m_ptScroll.x = 0; if (m_ptScroll.x>(int)(m_sizeOriginalImage.cx*m_fRatioX) - rcClient.Width()) { m_ptScroll.x = (int)(m_sizeOriginalImage.cx*m_fRatioX) - rcClient.Width(); } SetScrollPos(SB_HORZ, m_ptScroll.x, TRUE); InvalidateControl(); }} 哎呀,很乱反正当你发现nSBCode==SB_THUMBTRACK以后,你就获得当前滚动条位置和上次位置的差,如果是往上拖,就把滚动条的位置设置为上次位置-20,反之则+20最后再判断滚动条位置越界的问题 先GetScrollPosition得到已经滚动的视图在当前的位置,再用ScrollToSize函数。 常量字符串占用内存吗?存在哪里?生存期? 快速拖动窗口有残影.如何解决 MFC与DX相结合,在多窗口模式下显示不正常。。比较偏的问题 一个简单的问题:钩子记录结果保存的问题;请各为高手相助!!! 一个简单的程序,为什么都要出现错误? 不想考研了,有点茫然,有点不知所措.....! 有关IVideoWindow 学习com应从何入手,需要什么样的基础? SDI单文档工程中怎样通过对话框获取文档指针 一个带有lib的dll与不带lib的dll有何区别? 高手请进!(在线等待) 寻求TCPView的源代码?(分不是问题)
{
static int iPosOld=0;
if(nSBCode == SB_THUMBTRACK)
{
SCROLLINFO si;
si.cbSize=sizeof(si);
si.fMask=SIF_TRACKPOS;
GetScrollInfo(SB_HORZ,&si);
if(si.nTrackPos>iPosOld)si.nTrackPos=iPosOld+20;
if(si.nTrackPos<iPosOld)si.nTrackPos=iPosOld-20;
}
if (m_ptScroll.x<0)
m_ptScroll.x = 0;
if (m_ptScroll.x>(int)(m_sizeOriginalImage.cx*m_fRatioX) - rcClient.Width())
{
m_ptScroll.x = (int)(m_sizeOriginalImage.cx*m_fRatioX) - rcClient.Width();
}
SetScrollPos(SB_HORZ, m_ptScroll.x, TRUE);
InvalidateControl();
}
}
反正当你发现nSBCode==SB_THUMBTRACK以后,你就获得当前滚动条位置和上次位置的差,
如果是往上拖,就把滚动条的位置设置为上次位置-20,反之则+20
最后再判断滚动条位置越界的问题