用CListView写的列表,是report风格的,我想单击某一项选中它,同时响应一些事件,但是单击的时候只能选中第一列是为什么呢,怎么才能选中第一列以外的项呢?第一次用CListView,请大家多多指教!!谢谢!!!

解决方案 »

  1.   

    你是说某一行吧
    LVS_EX_FULLROWSELECT,加上这个标记
      

  2.   


    CListCtrl m_lstCtrl;
    .....
    m_lstCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);//选中整行记录
      

  3.   

    如果还要加上网格线,可以用以下代码:
    m_lstCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
      

  4.   

    这里有详细的CListCtrl控件使用方法:http://blog.csdn.net/sanshao27/archive/2007/11/16/1888315.aspx
      

  5.   

    m_list.SetItem(0, 1, LVIF_STATE,NULL, 0, LVIS_SELECTED, LVIS_SELECTED, 0);
    // 选中第一行的第二列,当然不能有LVS_EX_FULLROWSELECT属性
      

  6.   

    建议你使用DataGridView控件,比较适合你的要求,参考以下链接:
    http://msdn.microsoft.com/zh-cn/library/system.windows.forms.datagridview(VS.80).aspx
      

  7.   


    CListCtrl 没有单击相应整列的函数。 必须自己自画。
      

  8.   


    我是在VS2005代码画的列表,不是直接添加控件,MFC类中的选项中没有DataGridView啊
      

  9.   

    看看这个帖子吧
    http://blog.csdn.net/lixiaosan/archive/2006/04/07/653563.aspx
      

  10.   

    问题解决了,从CSDN里下载了一个CListCtrl的类,可以实现单击选中某个单元格的功能,我直接添加到自己的工程里了,谢谢各位热心人的帮助!!!!
      

  11.   

    http://download.csdn.net/source/664181 就是这个地址里的工程,我下载下来了,然后把它的CXListCtrl类添加到自己的工程里,再参照例子,把需要修改添加的代码都添加上,运行就ok了