您的位置:首页 > 其它

控件CCtrlList的虚拟列表使用方法--详解

2014-07-31 09:02 501 查看
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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: