CCtrlList使用-report风格

一:设置风格

DWORD dwStyle = m_list.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格的listctrl)
dwStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl)
dwStyle |= LVS_EX_DOUBLEBUFFER;//双缓冲
dwStyle |= LVS_EX_CHECKBOXES;//item前生成checkbox控件
m_list.SetExtendedStyle(dwStyle); //设置扩展风格

二:设置列名

使用m_list.InsertColumn(int nCol, LPCTSTR lpszColumnHeading, int nFormat, int nWidth, int nSubItem);

nCol:第几列,从0开始

lpszColumnHeading 显示的名称字段名

nFormat 可以选择LVCFMT_LEFT、LVCFMT_RIGHT和LVCFMT_CENTER

nWidth列宽度

nSubItem可不设置,默认即可

三:添加数据

有两种方式:

1.使用默认方式:

使用m_list.InsertItem(int nItem, LPCTSTR lpszItem); //插入一行数据

nItem要插入的行数从0算起

lpszItem行数第一列名称

使用m_list.SetItemText(int nItem, int nSubItem, LPCTSTR lpszText);//设置第几行各字段内容

nItem要设置的行数

nSubItem要设置的列数

lpszText要设置的内容

2.虚拟列表方式:

需要设置m_list属性中“所有者数据”为TRUE,添加LVN_GETDISPINFO消息处理,只要实现这个消息处理后,初始化的时候

调用m_list.SetItemCount(int iCount);设置行数即可

void OnLvnGetdispinfoList1(NMHDR *pNMHDR, LRESULT *pResult)
{
NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
LV_ITEM* pItem= &(pDispInfo->item);//获取要设置的项信息

int itemid = pItem->iItem;//第几行

if (pItem->mask & LVIF_TEXT)//设置文本内容
{
CString text;

switch(pItem->iSubItem)//第几列 根据第几列设置text 来填充内容
{
case 0:
case 1:
.

.

.
default:
text = _T("");
break;
}
lstrcpyn(pItem->pszText, text, pItem->cchTextMax);
}
*pResult = 0;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值