- 公开视频 -> 链接点击跳转公开课程
- 博客首页 -> 链接点击跳转博客主页
目录
[列表视图(List Control) - CListCtrl](#列表视图(List Control) - CListCtrl)
列表视图(List Control) - CListCtrl
创建列表视图
- 在对话框编辑器中,从工具箱中拖拽一个List Control到对话框资源。在类向导中为List Control添加变量,类型为
CListCtrl
。
设置列表视图属性
-
在对话框的属性窗口中,可以设置List Control的各种属性,如视图模式(View)、列标题(Column Headers)等。
-
视图模式:大图标、小图标、列表、详细信息。
-
列标题:设置列的标题和宽度。
成员函数
-
InsertColumn
:插入新列。 -
DeleteColumn
:删除指定列。 -
SetColumnWidth
:设置列的宽度。 -
InsertItem
:插入新行。 -
DeleteItem
:删除指定行。 -
DeleteAllItems
:删除所有行。 -
SetItemText
:设置指定行和列的文本。 -
GetItemText
:获取指定行和列的文本。 -
SetItemState
:设置指定行的状态。 -
etItemState
:获取指定行的状态。 -
SetItemImage
:设置指定行的图像。 -
GetItemImage
:获取指定行的图像索引。 -
SortItems
:使用用户提供的比较函数对列表视图进行排序。 -
SetExtendedStyle
:设置列表视图的扩展样式。 -
GetExtendedStyle
:获取列表视图的扩展样式。
注意事项
-
确保在创建列表视图之前,父窗口已经创建。
-
列表视图的父窗口应该是对话框或框架窗口。
-
列表视图的ID应该在对话框类的消息映射中正确映射。
示例代码
cpp
void CMainDlg::OnBnClickedButton1()
{
// 设置风格
m_ListView.SetExtendedStyle(m_ListView.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
// 添加列
m_ListView.InsertColumn(0, _T("序号"), LVCFMT_LEFT, 50);
m_ListView.InsertColumn(1, _T("进程ID"), LVCFMT_LEFT, 80);
m_ListView.InsertColumn(2, _T("进程名"), LVCFMT_LEFT, 80);
m_ListView.InsertColumn(3, _T("进程路径"), LVCFMT_LEFT, 200);
}
void CMainDlg::OnBnClickedButton28()
{
CString strIndex;
int nItem = m_ListView.InsertItem(m_ListView.GetItemCount(), L" ");
strIndex.Format(L"%d", nItem + 1);
m_ListView.SetItemText(nItem, 0, strIndex);
m_ListView.SetItemText(nItem, 1, _T("1024"));
m_ListView.SetItemText(nItem, 2, _T("notepad.exe"));
m_ListView.SetItemText(nItem, 3, _T("C:\\Windows\\System32\\Notepad.exe"));
}
void CMainDlg::OnNMDblclkList2(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
if (pNMItemActivate->iItem != -1)
{
CString strIndex = m_ListView.GetItemText(pNMItemActivate->iItem, 3);
ShellExecute(NULL, NULL, strIndex, NULL, NULL, SW_SHOWDEFAULT);
}
*pResult = 0;
}