使用SortChildrenCB 定义了一个排序函数,用来显示在线的主机。定时器每个几秒排序一次、但打比方你选了第一个ITEM。然后马上滚动 滚动条到最下面。到了定时器时间一到,他会调用排序函数 ,于是滚动条自动跑到第一个item上了。。排序函数没问题,就算,直接return strText1.Compare(strText2); 也是一样。咋搞呢?有个想法是,单击滚动条时,取消item的选中、得莫 怎么截获单击事件呢????有其他方法不????谁能解释下不,为啥会自动跳呢????

解决方案 »

  1.   

    int SetScrollInfo(          HWND hwnd,
        int fnBar,
        LPCSCROLLINFO lpsi,
        BOOL fRedraw
    );
      

  2.   

    你就扔一个函数,啥意思嘛。获取滚动条位置,等排序后,滚回来?我用GetScrollPos 试过了,没用
      

  3.   

    唉。我直接在CTreeCtrl的OnVScroll 里面把取消选中,OK了。