您的位置:首页 > 大数据

CListCtrl虚拟列表技术

2015-09-24 10:23 1111 查看
创建列表列
m_LstCtr.InsertColumn(0, L"列1", LVCFMT_CENTER, 40);
m_LstCtr.InsertColumn(1, L"列2", LVCFMT_CENTER, 80);
m_LstCtr.InsertColumn(2, L"列3", LVCFMT_CENTER, 0);  //列宽为零, 标识隐藏该列
m_LstCtr.InsertColumn(3, L"列4", LVCFMT_CENTER, 45);
m_LstCtr.InsertColumn(4, L"列5", LVCFMT_CENTER, 40);
m_LstCtr.InsertColumn(5, L"列6", LVCFMT_CENTER, 80);
//扩展属性 LVS_EX_DOUBLEBUFFER 用来防闪烁
m_LstCtr.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FLATSB | LVS_EX_FULLROWSELECT | LVS_EX_DOUBLEBUFFER );

//--触发LVN_GETDISPINFO消息

//dwCount, 表示当前记录数
m_LstCtr.SetItemCountEx(dwCount, LVSICF_NOSCROLL|LVSICF_NOINVALIDATEALL);
//Invalidate必须加, 窗口失去焦点时, 不会实时显示数据
m_LstCtr.Invalidate();

//--LVN_GETDISPINFO
void CSLConsoleDlg::OnLvnGetdispinfoList(NMHDR *pNMHDR, LRESULT *pResult)
{
//--MyData我的自定义数据集, 大家可以根据实际情况取自己的数据
NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
LV_ITEM* pItem= &(pDispInfo)->item;

if ( pItem->mask & LVIF_TEXT )
{
//m_LstCtr.SetRedraw(FALSE);
CString text;
switch (pItem->iSubItem)
{
case 0:
{
text.Format(L"%d", itemid + 1);
lstrcpyn(pItem->pszText, text, pItem->cchTextMax);
break;
}
case 1:
{
text = MyData[pItem->iItem].Col1;
lstrcpyn(pItem->pszText, text, pItem->cchTextMax);
break;
}
case 2:
{
text = text = MyData[pItem->iItem].Col1;
lstrcpyn(pItem->pszText, text, pItem->cchTextMax);
break;
}
case 3:
{
text.Format(L"%d", MyData[pItem->iItem].Col1;);
lstrcpyn(pItem->pszText, text, pItem->cchTextMax);
break;
}
case 4:
{
text = MyData[pItem->iItem].Col1;
lstrcpyn(pItem->pszText, text, pItem->cchTextMax);
break;
}
case 5:
{
text = MyData[pItem->iItem].Col1;
lstrcpyn(pItem->pszText, text, pItem->cchTextMax);
break;
}
default:
break;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CListctrl 大数据