我写了一个 局域网通讯工具 类似QQ
用树控件 显示好友列表,我要给树控件进行排序,也就是在线的人排在前面 离线的人排在后面
我用SortChildrenCB进行排序 排序过程进行的很顺利 也可以正常 显示那么我出现的问题是:(请看清楚!)当我选中树中的某一个节点,然后滚动滚动条 将改选中节点滚动到客户区外面 此时 界面上 看不到被选中的节点当有好友改变状态,也就是上线或者下线.... 就会调用排序函数... 排序之后树控件好像是被重新画了一样但是被选中的节点会回来并显示在最靠近边线的位置.(如果滚动到上边界外,那么此时在最上边,反之亦然)也就导致了 有时候 我想用滚动条找某一个好友的时候 还没有找到好友 界面就弹到开始被选中的那个人那了我希望能够让他排序前和排序后 都显示我当前能看到的界面....
哪位大哥有这方面的经验 告诉我一下.... 顺便说一下 如果你有msn,也可以看看 貌似msn也没有解决这个问题可以登录两个账号 在一个号里 选中令一个号 并滚动到界外... 另一个选择离线 也是会弹到选中那如果有牛人能帮我解决了 我感激不尽... 除了这200分外... 我还有200分 如果有需要 全囊相赠

解决方案 »

  1.   

    。。可能的解决方法是。。你在对话框中嵌入一个带滚动条的对话框,在些带滚动条的对话框中添加你的树控件,根据树控件的ITEM大小高度来控制这个对话框的大小(这个是重点),这样,你用这对话框滚动条来控制这对话框的显示,这样树控件就影响不了此对话框的显示了。下面是在对话框中嵌入一个带滚动条的对话框的方法http://www.codeproject.com/KB/dialog/scrollablechilddialog.aspx
      

  2.   

    。。可能的解决方法是。。你在对话框中嵌入一个带滚动条的对话框,在这个带滚动条的对话框中添加你的树控件,根据树控件的ITEM大小高度来控制这个对话框的大小(这个是重点),这样,你用这对话框滚动条来控制这对话框的显示,这样树控件就影响不了此对话框的显示了。下面是在对话框中嵌入一个带滚动条的对话框的方法
    http://www.codeproject.com/KB/dialog/scrollablechilddialog.aspx