控件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;
}
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;
}
相关文章推荐
- CListCtrl 列表控件的使用方法 详解 .
- MFC 虚拟列表控件的使用方法
- CListCtrl 列表控件的使用方法详解
- CListCtrl 列表控件的使用方法 详解
- C++控件:ListControl列表控件的使用方法
- Android Gallery控件使用方法详解
- VC++ 列表控件(CList) 使用方法 (2)
- Android Gallery控件使用方法详解
- Android系列之浅谈AndroidGallery控件使用方法详解
- C++控件:ListControl列表控件的使用方法
- Android Gallery控件使用方法详解
- CListCtrl 列表控件的使用方法
- [Android] ListView (普通列表控件) 的基本使用方法
- 【视频】配置信息管理 的 使用方法(五):配置程序之列表、分页控件、按钮
- Delphi-Scrollbar控件的使用方法和详解
- Memo控件的使用方法和详解
- 【视频】配置信息管理 的 使用方法(五):配置程序之列表、分页控件、按钮
- 树控件中使用虚拟列表
- VC++ 列表控件(CList) 使用方法
- VC++ 列表控件的使用方法