none
SetScrollSizes的问题,比较纠结 RRS feed

  • 常规讨论

  •         有如下需求:

    我有一个视图,是根据文件字节数 来确定这个视图里显示的,每行显示16字节

         我要将视图显示为uLineCount = fileLength/16行,但是问题来了,我怎么设置SetScrollSizes都有问题,我的视图尺寸的height大概为750左右。

    如:

    dwLineHeight = 16;   //每行的高度(字符高度)

    sizeTotal.cx = rcView.Width();

    sizeTotal.cy = uLineCount * dwLineHeight;

    SetScrollSizes(MM_TEXT, sizeTotal, CSize(sizeTotal.cx / dwColNum, 1), CSize(sizeTotal.cx / dwColNum, 1));

    此时其他的都正常,但是到达文件末尾时,滚动条却只未滚动到末端,只滚动了很小的一段,我猜想是因为我画View里数据时是直接CPoint pt = GetScrollPosition();,然后以pt作为当前的行来进行绘制,所以滚动条到达uLineCount像素位置时就绘制完文件内容了,余下的(dwLineHeight-1)uLineCount都是空白,我想知道,怎么在每次取到pt后马上将滚动条的位置设置到pt*dwLineHeight,但是又不能影响GetScrollPosition(),我希望GetScrollPosition()取到的y坐标依然是pt,而不是dwLineHeight

    2010年8月4日 8:48