【操作案例】CListCtrl

来源:互联网 发布:淘宝旺旺卖家版下载 编辑:程序博客网 时间:2024/05/16 07:41

1.首先CListCtrl *m_list;如果直接采用拖拽控件的方式,要讲控件的view属性设置成report。

2.实例化并创建窗口
m_list=newCMylist();
m_list->Create(WS_VISIBLE|WS_CHILD|WS_VSCROLL|LVS_REPORT|WS_BORDER,CRect(60,200,900,550),this,100001);
给每个单元格设置边框:m_list->SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES);

3.设置每一列的头部名称
m_list->InsertColumn(0,L"ID",LVCFMT_LEFT,40);//插入列
m_list->InsertColumn(1,L"关键词",LVCFMT_LEFT,150);
m_list->InsertColumn(2,L"链接",LVCFMT_LEFT,300);
m_list->InsertColumn(3,L"发布结果",LVCFMT_LEFT,100);
设置每一行的头部名称(实际是为每一行插入一个序号)
m_list->InsertItem(0,L"1");//插入行
m_list->InsertItem(1,L"2");//插入行
m_list->InsertItem(2,L"3");//插入行

4.给我们的列表添加内容
m_list->SetItemText(0,1,L"第一行第二列");//在第一行第二个位置设置内容
m_list->SetItemText(0,2,L"第一行第三列");//在第一行第三个位置设置内容
m_list->SetItemText(0,3,L"第一行第四列");//在第一行第四个位置设置内容

int m_Count = m_list->GetSelectionMark();//返回当前选择项的索引值
m_list->GetItemText(m_Count , 0); //返回第m_Count行、第0列的文本

CListCtrl *m_list;
m_list->MoveWindow(rect);//设置控件大小

例:
dlg->listCount = 0;
for(int n = 0; n < m ;n++)
{
count.Format(_T("%d"),dlg->listCount+1);
dlg->m_list.InsertItem(dlg->listCount,count);//插入行
dlg->m_list.SetItemText(dlg->listCount,2,L"是");
dlg->listCount++;
}

//在CListCtrl中加入如下代码即可改变列表第一列的颜色afx_msg void OnCustomdrawMyList ( NMHDR* pNMHDR, LRESULT* pResult );ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, &CListEXC::OnCustomdrawMyList)void CListEXC::OnCustomdrawMyList( NMHDR* pNMHDR, LRESULT* pResult ){NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );*pResult = CDRF_DODEFAULT;if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )    {        *pResult = CDRF_NOTIFYITEMDRAW;    }else if( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage ){*pResult = CDRF_NOTIFYSUBITEMDRAW;    }else if ( (CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage ){COLORREF /*crText, */crBkgnd; switch(pLVCD->iSubItem) {case 0:{crBkgnd = RGB(128,128,255);break;}default:{crBkgnd = RGB(255,255,255);break;} }        //pLVCD->clrText = crText;        pLVCD->clrTextBk = crBkgnd;        *pResult = CDRF_DODEFAULT;}}//在CListCtrl父窗口代码中加入如下代码即可改变列表行高CImageList imgList;imgList.Create(IDB_BITMAP1,16,1,RGB(255,255,255));m_list.SetImageList(&imgList,LVSIL_SMALL);


0 0
原创粉丝点击