ContactList.Create( LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_LIST,CRect(4,4,200,450),this,2);
我现在的这个样式,当列表满了以后之后的数据加在第2列了,出现水平滚动条。
我想让他变成就1列,竖直上下滚动的,给用什么样式?

解决方案 »

  1.   

    你运行过了,然后不行?
    还是你自认为不行?
    我在Report模式下,用这个是可以出现竖直滚动条的
    List下没试过,我试下先
      

  2.   

    刚试了下,在list模式下还真不行...
      

  3.   

    又看了下资料,LVS_ALIGNLEFT和LVS_ALIGNTOP只对图表和小图标模式,还有Report模式有效
    对LVS_LIST模式,没有效果....
    http://hi.baidu.com/blackscreen/blog/item/85fdc966c834082eab184c48.html
      

  4.   


    ::SetWindowLong(m_list.GetSafeHwnd(),GWL_STYLE,WS_CHILD|WS_VISIBLE| WS_HSCROLL);
      

  5.   

    你要是用垂直滚动的话,ContactList.Create( LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SMALLICON|LVS_ALIGNTOP,CRect(4,4,200,450),this,2);
    这样创建就完全实现你的要求了!!!
      

  6.   

    忽然发现个问题,6楼的虽然可以实现竖直滚动条,但是这个时候,list的显示效果已经不是list类型,而是icon类型的了
    应该和楼主要的list效果不一样
      

  7.   

    摸索了一段时间,终于找到方法了DWORD dwStyle=::GetWindowLong(GetListCtrl().GetSafeHwnd(),GWL_STYLE)&WS_HSCROLL;
    ::SetWindowLong(GetListCtrl().GetSafeHwnd(),GWL_STYLE,dwStyle|WS_CHILE|WS_VISIBLE|WS_VSCROLL);
    因为SetWindowLong会覆盖原来的风格,所以先获取原来的风格 并去掉横向滚动,然后再加上需要的风格即可
      

  8.   

    我试了下,有问题的
    首先就是,他也是将ListCtrl转化成了Icon模式
    另外,执行这2句代码,虽然是可以像竖直滚动条一样,用鼠标向下滑动,但是滚动条本身是没有显示的
    不如一句 ::SetWindowLong(m_list.GetSafeHwnd(),GWL_STYLE, WS_CHILD | WS_VISIBLE |WS_HSCROLL);
    来的实在