SetScrollSizes设置scrollview页面的页数?

Zoe105 2010-09-02 02:32:55
想要设置scrollview的竖方向页数为5页,横的一页。代码如下:

CSize sizeTotal;
sizeTotal.cx = sizeTotal.cy = 1000;

CSize sizepage(1000,200);
SetScrollSizes(MM_TEXT, sizeTotal,sizepage);
在OnUpdate()和OnInitialUpdate()和OnSize()函数中均添加如上代码,为何运行的页数不对,而且当窗口变大变下时,点击竖滚动条的空白处范围会变化呢?比如最大化时出现是的可以点三下到底,最大化一半的大小时点二下到底,就是不能点击四下到底?是点击四下才代表五页吧
...全文
447 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
无边1 2010-12-02
  • 打赏
  • 举报
回复
1. scrollview的设置不是这个意思,你设置CSize sizepage(1000,200)表示点击滚动条一下,水平方向移动1000,而垂直方向移动200。
2. 至于楼主说的到底,实际上是让最底下的内容在页面上能显示。本身客户窗口有一个大小Rect,可以用GetClientRect获得,你设置的滚动条大小是1000。那么当前滚动条的逻辑坐标中水平方向有rect.right-rect.left被显示,垂直方向有rect.top-rect.bottom被显示。
就是说垂直方向有1000-(rect.top - rect.bottom)的内容没被显示,每次点击改变的200,因此到底的次数应该为:n = (1000-(rect.top - rect.bottom))/200;(如果除不尽n再加上一次)。
非要计算次数可以这样 n = (1000-(rect.top - rect.bottom) + 199)/200;(加上199是为了四舍五入类似的方法)
3. 在全屏的时候次数比半屏的时候少,因为全屏时rect.top - rect.bottom较大,不需要滚那么多次。
向立天 2010-09-28
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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