标准滚动条算法

wKioL1VupxaCLysSAAA-ouPlBrw244.gif 


#define MINSIZE 20

OnSize(O,G,D,H)
{
  if (H>D)
  {
    if ((H-O)<D)
    {
      O=H-D
      SetViewOffset(-O)
    }

    由 B:G=D:H 得 B=GD/H

    if (B<MINSIZE) B=MINSIZE

    由 P:(G-B)=O:(H-D) 得 P=O(G-B)/(H-D)

    SetScrollButtonTop(P)
    SetScrollButtonHeight(B)

    if(!IsScrollVisible())
    {
      ShowScroll()
    }
  }
  else
  {
    SetViewOffset(-O)
    HideScroll()
  }
  ReDraw()
}

OnScroll(G,D,H,P,B)
{
  由 P:(G-B)=O:(H-D) 得 O=P(H-D)/(G-B)
  SetViewOffset(-O)
  ReDraw()
}










本文转自 yntmdr 51CTO博客,原文链接:http://blog.51cto.com/yntmdr/1657868,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值