2、编辑位图
三、添加变量
四、添加代码(红色部分)
BOOL CCListCtrlDlg::OnInitDialog()
{
CDialog::OnInitDialog();
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
//创建列表视图窗口
m_imagelist.Create(24,24,ILC_COLOR24|ILC_MASK,1,0);
//向图像列表中添加图标
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
//将图像列表关联到列表视图控件中
m_list.SetImageList(&m_imagelist,LVSIL_NORMAL );
//向列表视图中添加数据
m_list.InsertItem(0,"长江",0);
m_list.InsertItem(1,"黄河",1);
m_list.InsertItem(2,"泰山",2);
return TRUE; // return TRUE unless you set the focus to a control
}
五、编译
六、运行

七、函数说明
1、CListCtrl::SetImageList函数说明
CImageList* SetImageList(CImageList*pImageList,int nImageListType)
pImageList:图像列表指针
nImageListType:标识图像列表类型
功能:关联图像列表控件和列表视图。返回值指向上一个图像列表指针。
图像列表类型 说明
LVSIL_NORMAL 大图标图像列表
LVSIL_SMALL 小图标图像列表
LVSIL_STATE 状态图标图像列表
2、CListCtrl::InsertItem函数声明
int InsertItem(const LVITEM*pItem)
int InsertItem(int nItem,LPCTSTR lpszItem)
int InsertItem(int nItem,LPCTSTR lpszItem,int nImage)
pItem:一个LVITEM*结构指针
nItem:
lpszItem:
nImage:
功能:向列表视图控件中插入视图项。创建成功个则返回新添加项的索引;否则返回“-1”
二、
三、添加变量
四、添加代码(红色部分)
BOOL CCListCtrlDlg::OnInitDialog()
{
CDialog::OnInitDialog();
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_ONECLICKACTIVATE);
m_list.InsertColumn(0,"姓名",LVCFMT_LEFT,40);
m_list.InsertColumn(1,"性别",LVCFMT_LEFT,40);
m_list.InsertColumn(2,"年龄",LVCFMT_LEFT,40);
m_list.InsertColumn(3,"部门",LVCFMT_LEFT,40);
m_list.InsertItem(0,"长江");
m_list.InsertItem(1,"黄河");
m_list.InsertItem(2,"泰山");
CString str1,str2,str3;
str1="男";
str2="25";
str3="人事";
m_list.SetItemText(0,1,str1);
m_list.SetItemText(0,2,str2);
m_list.SetItemText(0,3,str3);
return TRUE; // return TRUE unless you set the focus to a control
}
五、编译
六、运行
在MFC的对话框模式下使用CListCtrl控件,其实不管在SDK或文档/视图模式下,VC控件的使用都差不多,下面来好好的写写CListCtrl控件的使用笔记。
一、CListCtrl控件的创建
由于我是在MFC的对话框模式下使用CListCtrl控件的,所以只需要在控件栏上选择CListCtrl的图形按钮,接着添加到对话框中就行了。
二、CListCtrl控件样式的设置
第一步:在使用CListCtrl控件之前,首先需要为该控件关联一个变量(只针对于对话框模式):
CListCtrl m_BlogAccountList;
第二步:由于CListCtrl控件要做一些初始化操作,比如设置控件样式,设置控件的行列并填入一些数据。初始化操作的代码是在对话框的OnInitDialog事件中写入的。
默认情况下,CListCtrl控件的样式是非常简陋的,大多情况下我们都需要对CListCtrl控件的样式进行修改,比如设置为报表样式,可以进行整行选择等,如有需要还有调整CListCtrl控件的行高。诸如这些设置都需要用到CListCtrl控件的扩展样式,所以首先得了解这些扩展样式。
我在MSDN中没有找到CListCtrl控件的扩展样式资料,只好上百度百科找了找。
CListCtrl控件的扩展样式
LVS_EX_GRIDLINES //绘制表格线
LVS_EX_SUBITEMIMAGES//子项目图标列表
LVS_EX_CHECKBOXES //带复选框
LVS_EX_TRACKSELECT //自动换行
LVS_EX_HEADERDRAGDROP//报表头可以拖拽
LVS_EX_FULLROWSELECT //选择整行
LVS_EX_ONECLICKACTIVATE//单击激活
LVS_EX_TWOCLICKACTIVATE//双击激活
LVS_EX_FLATSB//扁平滚动条
LVS_EX_REGIONAL
LVS_EX_INFOTIP
LVS_EX_UNDERLINEHOT