我用SetScrollInfo设置了滚动条.根据书上讲的,比如SB_VERT的滚动条来滚动Y轴.
难道每次TextOut,或则画图,或则画其他控件,都必须要用该对象的Y坐标减去si.nPos吗?还有个问题是,如果我不确定到底要画多少对象.完全由用户决定的话.怎么去动态滚动条?
书上是一开始就设置了si.nMax,而且他的文本不会再改变了.
如果可以动态滚动条,si.nMax怎么来随时保持最新?
希望高手帮帮忙,我想得到Win32 API的答案不是MFC的答案.
先谢谢了.

解决方案 »

  1.   

    可以动态设置滚动条的si.nMax啊
    每当用户更新数据的时候,检测一次数据的行数,更新一次滚动条的最大阀值就可以了
      

  2.   

    怎么来检查窗口里到底有多少行数据?
    窗口内的元素不一定都是文本文件啊.
    比如说,我要制作一个Game Map Editor.
    我根本不知道用户到底会制作怎样一个大小的地图啊.
    有专门的函数来检测到底窗口里画到哪个位置了吗?
    还有,真的要每个对象的坐标都要和si.nPos来相减?
      

  3.   

    简单点说就是怎么即时设置最合适的 si.nMax啊.
    各位高人,帮帮忙啊.
      

  4.   

    怎么和你说呢
    就像画图板一样,当用户用鼠标拉大画布的时候,或者用户设置画布大小的时候,就用
    SetScrollInfo来设置滚动条的最大阀值啊至于滚动位置的问题,就要看你滚动步长是多少了
    如果步长是1的话,那么就可以直接把从nPos开始的数据画出来啊