1.将所有者数据设置为TRUE
2.定义存储数据的结构
typedef struct _LST_DATA_
{
CString strClipID;
CString strClipName;
CString strLogicID;
CString strChnName;
CString strTypeName;
CString tPlanAirTime;
CString tPlanLastAirTime;
}LST_DATA, *LPLST_DATA;
typedef std::vector<LST_DATA> ARY_LST;
3.将数据插入ARY_LST 机构中
4.创建LVN_GETDISPINFO 消息处理函数
void CQueryToolDlg::OnLvnGetdispinfoQueryList(NMHDR *pNMHDR, LRESULT *pResult)
{
NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
LV_ITEM* pItem= &(pDispInfo)->item;
if (pItem == NULL)
return;
CString strTmp = "";
int iItemIndx= pItem->iItem;
if (pItem->mask & LVIF_TEXT) //字符串缓冲区有效
{
switch(pItem->iSubItem)
{
case 0:
{
strTmp.Format("%s", m_aryLstData[iItemIndx].strClipID);
lstrcpy(pItem->pszText, strTmp);
strTmp = "";
}
break;
case 1:
{
strTmp.Format("%s", m_aryLstData[iItemIndx].strClipName);
lstrcpy(pItem->pszText, strTmp);
strTmp = "";
}
break;
case 2:
{
strTmp.Format("%s", m_aryLstData[iItemIndx].strLogicID);
lstrcpy(pItem->pszText, strTmp);
strTmp = "";
}
break;
case 3:
{
strTmp.Format("%s", m_aryLstData[iItemIndx].strChnName);
lstrcpy(pItem->pszText, strTmp);
strTmp = "";
}
break;
case 4:
{
strTmp.Format("%s", m_aryLstData[iItemIndx].strTypeName);
lstrcpy(pItem->pszText, strTmp);
strTmp = "";
}
break;
case 5:
{
strTmp.Format("%s", m_aryLstData[iItemIndx].tPlanAirTime);
lstrcpy(pItem->pszText, strTmp);
strTmp = "";
}
break;
case 6:
{
strTmp.Format("%s", m_aryLstData[iItemIndx].tPlanLastAirTime);
lstrcpy(pItem->pszText, strTmp);
strTmp = "";
}
break;
}
}
*pResult = 0;
}