CListCtrl虚拟列表技术

来源:互联网 发布:alpine linux apk 编辑:程序博客网 时间:2024/05/16 02:52
创建列表列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_GETDISPINFOvoid 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;        }       }}
0 0
原创粉丝点击