视图缩放如何与滚动条匹配?
SetScrollRange(SBS_VERT,0,nScrollRange,TRUE);//nScrollRange如何设置?它的值是怎么算的?
以下这几个值如何设置?或如何确定?或如何计算?
SCROLLINFO sif;
sif.nMax = ?;
sif.nMin = ?;
sif.nPos = ?;
sif.nTrackPos = ?;
sif.fMask = SIF_ALL;
sif.nPage = ?;
SetScrollRange(SBS_VERT,0,nScrollRange,TRUE);//nScrollRange如何设置?它的值是怎么算的?
以下这几个值如何设置?或如何确定?或如何计算?
SCROLLINFO sif;
sif.nMax = ?;
sif.nMin = ?;
sif.nPos = ?;
sif.nTrackPos = ?;
sif.fMask = SIF_ALL;
sif.nPage = ?;
主要用的是GetScrollPos和SetScrollPos这两个
2. 如果图片 的大小超过了客户区的大小,则获取图片的大小 后,调用view的方法设置滚动的范围:SIZE se;
se.cx = picture_width;
se.cy = picture_height;
SetScrollSizes( MM_TEXT, se );3. 获取当前的滚动位置:
CPoint pt = GetScrollPosition();
此时,pt的x、y分别是当前滚动条滚动到的位置。如果是没有滚动条出现,则它们分别为0在你画图时,其坐标分别减去pt,即画图的起始位置是:
(-pt.x,-pt.y)这样你的图像就可以正常显示了
如果你的图片括大一倍,则picture_width和picture_height当然也要括大一倍,如果是缩小一倍,这两个值也当然要缩小一倍