本人在工作中需要使用CListCtrl显示数据,要求左边的1列必须固定,即不管用户怎样左右滚动,第一列始终可见。我从CListCtrl派生了CListCtrlFixed,其中重载了WM_HSCROLL消息,在使用了ScrollWindowEx滚动了视图内容,并用SetScrollPos正确设置了ScrollBar的位置。现在的问题是:一旦ListCtrl刷新,就恢复了原样,好像根本没左右滚动ListCtrl一样,即使设置了正确的ScrollPos。
郁闷中,那位达人能帮帮忙?告诉偶该怎么做,先谢谢了。 分不够可以另开帖子。

解决方案 »

  1.   

    你的ListCtrl重画了么?子类有没有重写自绘函数?
      

  2.   

    不要用ScrollWindow,CListCtrl的滚动条有很多他内部的处理
    参考
    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=210118
    然后自己在下面放一个独立的滚动条
      

  3.   

    固定那一列干吗不单独用一个ListCtrl?这样就能省去很多烦恼了~~:)
      

  4.   

    就是,还不如右边用一个List,左边用其他控件
      

  5.   

    先把帖子顶上去,问题依旧。To  happyparrot(为何我买彩票从来不中奖?没钱怎么办阿?)
      在调用ScrollWindowEx后,肯定刷新了部分窗口Rect。其实CListCtrlFixed设不设置自绘风格,效果都一样,解决不了问题。thx。To goodboyws(深夜不眠者)
      Thx。参考的链接与本题关系不大。不过你知道其内部处理过程么?或者给我个提示?To pomelowu(羽战士) && sodangerous(机器人)
      Thx。不过如果另外放置一个ListCtrl,带来的数据同步问题、同步滚动问题,恐怕更麻烦。
    哪位达人知道goodboyws(深夜不眠者)所说的内部处理,能否给个提示?
      

  6.   

    建议使用或参考MFC Grid control 控件,可指定1个或多个固定列,功能非常强大。源码下载:
    http://www.codeproject.com/miscctrl/gridctrl/gridctrl_demo225.zip
      

  7.   

    用CGridCtrl已经解决了。thx all