关于CScrollView类的滚动条问题??????50分

weiwozhonghua 2005-05-18 11:16:57
我想用鼠标(在可户区)的移动来控制滚动条的移动,我是在OnMouseMove中加入ScrollToPosition这个函数来实现的!!!
但是有一个问题:当图片的高或者宽只有一方客小于户区时,也就是只出现水平滚动条或垂直滚动条时,我移动鼠标ScrollToPosition()对没有出现的那个滚动条也起作用,这样的话客户区内的图片就乱移动(没有滚动条的向相反的方向移动)!我又用GetScrollRange(int nBar,LPINT lpMinPos,LPINT lpMaxPos)这个函数来判断是否有滚动条,以防止没有滚动条的就不执行滚动操作,但是在图片完全小于或者完全大于客户区时正常返回,一旦高或者宽只有一方小于可户区时,大于的可正常返回,但小于的最大值始终返回为100,应该为0呀!!!
求高手指点,我该如何修改???
谢谢!!!!
...全文
94 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawnwinds 2005-05-19
  • 打赏
  • 举报
回复
通过比较图片和客户区的宽和高就可以知道有没有滚动条。
jerry 2005-05-19
  • 打赏
  • 举报
回复
CSize sz = GetTotalSize();
CRect rc;
GetClientRect(&rc);

if(sz.cx < rc.Width())
{
// 没有水平滚动
}

if(sz.cy < rc.Height())
{
// 没的垂直滚动
}
vcmute 2005-05-19
  • 打赏
  • 举报
回复
GetScrollBarInfo看rgstate的各个elements是否STATE_SYSTEM_INVISIBLE

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧