我用GetItemText()获得List中的内容,内容很多,为什么它只给我取出一部分出来?
我想在ListCtrl中隐藏两列数据,不用他拖动显示出来?
找了半天,未果,郁闷的紧........

解决方案 »

  1.   

    里面的字符串是用一个char *保存的,当有0时,就断开了,
    所以,你如果想得到更多信息,只有能得到字的长度,并得到item,并用memcpy(buff,item.lptext),这样就可以了。
      

  2.   

    这个问题我当初也碰到过,我怕麻烦,就做了一个字符串数组,和ListCtrl同步就可以了
      

  3.   

    第一个问题我搞定了,用STL做的,第二个还有求各位高手指点。
      

  4.   

    CListCtrl::SetItemData
    BOOL SetItemData( int nItem, DWORD dwData );你想要设置的数据可以用一个结构
    typedef struct{
    int a;
    CString b;
    }SData;
    然后如下:
    m_lcList.SetItemData(nItem,DWORD(&sdata));
    要得到数据可以这样:
    SData* psdata=(SData*)m_lcList.GetItemData(nItem);
      

  5.   

    HDITEM hdItem;
    ZeroMemory(&hdItem, sizeof(hdItem));
    hdItem.mask = HDI_WIDTH;
    hdItem.cxy = 0;
    m_HeaderCtrl.SetItem(nIndex, &hdItem);
      

  6.   

    >>首先感谢以上各位,怎么没人知道第二个怎么实现吗?
      自己定义一个项目结构,用链表保存吧.
      

  7.   

    escout(侦察兵)的方法很好(只是不要用CString,用char[]或char*).
    当添加一个条目后,
    SData * pData=(SData *)malloc(sizeof(SData));
    pData->a=100;
    strcpy(pData->b,"...");如果用char*则要先调用new
    m_Ctrl.SetItemData(nIndex,pData);//可能要强制转换
    //取用
    SData * pData=(SData *)m_Ctrl.GetItemData(nIndex);