VC2008中怎样把ClistCtrl设为:虚拟列表
谢谢

解决方案 »

  1.   

    我同样遇到问题 就是不能将ClistCtrl 设置为虚拟列表  我也是用VC2008
      

  2.   


    第一步:创建
    m_list.Create(WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_OWNERDATA, CRect(200, 200, 600, 600), this, IDC_LIST_TAG);
    m_list.InsertColumn(0, "Field 1");
    m_list.InsertColumn(1, "Field 2");
    m_list.InsertColumn(2, "Field 3");
    m_list.SetColumnWidth(0, 200);
    m_list.SetColumnWidth(1, 200);
    m_list.SetColumnWidth(2, 200);第二步:设置消息映射BEGIN_MESSAGE_MAP(CListCtrlEx, CListCtrl) ON_NOTIFY_REFLECT_EX(LVN_GETDISPINFO, &CListCtrlEx::OnGetdispinfoList)END_MESSAGE_MAP()BOOL CListCtrlEx ::OnGetdispinfoList(NMHDR *pNMHDR, LRESULT *pResult)
    {
    MessageBox(_T("虚拟列表消息响应"));
    ...........
    }
    第三步:发送数据 memcpy(InfoOfTagArray[0].szTagInfo,_T("123456"),32); m_list.AddItem(&InfoOfTagArray[0],1);
        
    memcpy(InfoOfTagArray[0].szTagInfo,_T("123456"),32);

    m_list.AddItem(&InfoOfTagArray[0],1);最后发现,消息没有响应。。请达人帮帮忙
      

  3.   

    设置 LVS_OWNERDATA 后,需要再发送一条设置条目数量的消息
    m_list.SetItemCount(...)
      

  4.   

    我的m_list.AddItem(&InfoOfTagArray[0],1);
    函数已经有m_list.SetItemCount(...)我在vc6.0可以通过 ,为什么在vc2008不能通过呢?