Scroll位置计算

thumb可滚动的长度track_len:等于整个滚动条长度减去两个滚动条上的按钮:
track_len = scrollbar_len - scroll_buttion_len * 2

thumb的长度:

thumb_len / track_len = si.page / (si.max-si.min);

为安全起见,一般写成

thumb_len / track_len = si.page / (si.max-si.min+1);

thumb_len = MulDiv(si.page, track_len, si.max-si.min+1);//

 thumb的pos和si.pos对应,

先假定thumb_pos的起始坐标也为0,那么有

thumb_pos/(track_len-thumb_len) = si.pos/((si.max-si.min)-si.npage)

再得到起始坐标startcoord,


 

原文地址:https://www.cnblogs.com/hgy413/p/3693601.html