2024年4月19日发(作者:)

CListCtrl控件

常用操作:

1、添加列标题头:InsertColumn

2、获取与设置列宽:GetColumnWidth、SetColumnWidth

3、添加一行:InsertItem、SetItemText

4、获取与设置单元文本:GetItemText、SetItemText

5、允许多行选中时,获取选中的行数:GetSelectedCount

6、单行选中时,获取选中的行:GetSelectionMark

7、选中某行:SetItemState(n, LVIS_SELECTED, LVIS_SELECTED);取消选中的

行SetItemState(n,0,-1);使用此函数前需要先调用SetFocus();

8、获取某行的状态是否为选中:GetItemState(n, LVIS_SELECTED) ==

LVIS_SELECTED

9、删除所有行:DeleteAllItems

10、删除指定列:DeleteColumn

11、删除指定行:DeleteItem

12、获取与设置列表控件的背景色:GetBkColor、SetBkColor

13、获取与设置文字背景色:GetTextBkColor、SetTextBkColor

14、获取与设置文字前景色:GetTextColor、SetTextColor

15、获取与设置Check:GetCheck、SetCheck,使用前需要设置控件属性

SetExtendedStyle(LVS_EX_CHECKBOXES);使控件有勾选功能

16、获取与设置图标列表:GetImageList、SetImageList

17、获取与设置行附加数据:GetItemData、SetItemData

18、获取与设置扩展风格样式:GetExtendedStyle、SetExtendedStyle

19、设置正行选中与网格线:SetExtendedStyle(LVS_EX_FULLROWSELECT |

LVS_EX_GRIDLINES);

20、让ListCtrl支持编辑的功能:

①、将属性中的 Edit Labels 设置为 True;

②、响应控件的 LVN_EDNLABELEDIT 消息,添加如下代码:

CString strText;

m_tControl()->GetWindowText(strText);

m_mText(pDispInfo->,

pDispInfo->em, strText);

21、多行可选时,跳到第一个被选中的行,即使第一个被选中的行可视。

POSITION pos = pView->GetListCtrl().GetFirstSelectedItemPosition();

int nFirstSel = pView->GetListCtrl().GetNextSelectedItem(pos);

if (nFirstSel != -1)

{

pView->GetListCtrl().EnsureVisible(nFirstSel,FALSE);

}

列表中添加图标代码:

UINT nIconID[] =

{IDI_ICON1,IDI_ICON2,IDI_ICON3,IDI_ICON4,IDI_ICON5};//图标ID

m_(16,16,ILC_COLOR24,sizeof(nIconID)/sizeof(UINT),0)

;//初始化CImageList类,sizeof(nIconID)/sizeof(UINT)为图标个数,后面的

0表示CImageList在sizeof(nIconID)/sizeof(UINT)个图标个数的基础上可再

添加多少个图标。

m_olor(RGB(255,255,255));//设置背景色为白色

for(int i = 0; i < sizeof(nIconID)/sizeof(UINT); i++)

{

m_(AfxGetApp()->LoadIcon(nIconID[i]));//将图标添加到

CImageList

}

m_geList(&m_ImageList,LVSIL_SMALL);//设置列表控件显示

图标

m_Column(0,_T("第1列"),0,100);

m_Column(1,_T("第2列"),0,100);

m_Column(2,_T("第3列"),0,100);

m_Item(0,_T("数据1"),0);//后面的0表示添加CImageList

中的第0个图标

m_Item(1,_T("数据2"),1);//后面的1表示添加CImageList

中的第1个图标

m_Item(2,_T("数据3"),2);

m_mText(0,1,_T("01"));

m_endedStyle(LVS_EX_CHECKBOXES);//设置控件有勾选功能

DWORD dwStyle = m_endedStyle();

m_endedStyle(dwStyle|LVS_EX_FULLROWSELECT);设置控件选

中行的功能