CListCtrl虚拟列表技术

创建列表列
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;
        }   
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值