CListControl列表视图控件
示例:设计用户登录模块
列表视图控件,风格为:Icon;
通过类向导添加变量:CListCtrl m_UserList;
1、对话框类中添加成员变量:
CimageList m_ImageList;
2、对话框初始化部分创建图像列表控件:
m_ImageList.Create(32, 32, ILC_COLOR24|ILC_MASK, 1, 0);
3、紧接着,对话框初始化部分为图像列表控件添加内容:
m_ImageList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON1)));
m_ImageList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON2)));
m_ImageList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON3)));
m_ImageList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON4)));
m_ImageList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON5)));
4、接着,为列表视图控件关联图像列表控件
m_UserList.SetImageList(&m_ImageList, LVSIL_NORMAL);
将列表视图控件与图像列表控件相关联
5、向列表视图控件中添加内容:
m_UserList.InsertItem(0, "小明", 0);
0:在列表视图控件索引位置
小明:文本内容
0:在图像列表中的索引位置
m_UserList.InsertItem(1, "小雨", 1);
m_UserList.InsertItem(2, "小强", 2);
m_UserList.InsertItem(3, "小红", 3);
m_UserList.InsertItem(4, "小张", 4);
6、接着,处理登录按钮单击事件:
void CLoginDlg::OnLogin()
{
int nSel = m_UserList.GetSelectionMark();
//GetSelectionMark:取得列表视图中,当前选中项索引
if (nSel != -1)
{
//获取用户名
CString szUser = m_UserList.GetItemText(nSel, 0);
//GetItemText:取得选中项文本
//验证用户名和密码,代码省略
}
}
示例:
列表视图控件关联变量:CListCtrl m_List;
对话框类中添加成员变量:CImageList m_ImageList;
对话框初始化部分添加以下代码:
1、创建图像列表控件
m_ImageList.Create(32, 32, ILC_COLOR24|ILC_MASK, 1, 0);
2、向图像列表控件中添加图标
m_ImageList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON1)));
m_ImageList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON2)));
m_ImageList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON3)));
m_ImageList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON4)));
m_ImageList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON5)));
3、为列表视图控件关联图像列表控件
m_List.SetImageList(&m_ImageList, LVSIL_NORMAL);
4、向列表视图控件中添加数据
m_List.InsertItem(0, "小明", 0);
m_List.InsertItem(1, "小雨", 1);
m_List.InsertItem(2, "小强", 2);
m_List.InsertItem(3, "小红", 3);
m_List.InsertItem(4, "小张", 4);
5、
char szAppName[128] = {0};
GetModuleFileName(NULL, szAppName, 128); //获取应用程序完整名称
char szDriver[128] = {0};
char szDir[128] = {0};
char szName[128] = {0};
char szExt[128] = {0};
_splitpath(szAppName, szDriver, szDir, szName, szExt);
//分解目录
char szBmpName[128] = {0};
strcat(szBmpName, szDriver);
strcat(szBmpName, szDir);
strcat(szBmpName, "Bk.bmp");
//读取应用程序下的位图名称
BOOL bRet = m_List.SetBkImage(szBmpName, TRUE, 1 , 1);
//设置背景位图
m_List.SetTextBkColor(CLR_NONE);
//设置文本背景颜色设置为无色
6、在InitInstance()中,添加:
AfxOleInit();(否则不能正确显示)
示例:
m_DataList.SetExtendedStyle(
LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
设置扩展风格为:网格形式、整行选取
m_DataList.InsertColumn(0, "姓名", LVCFMT_LEFT, 150);
m_DataList.InsertColumn(1, "总成绩", LVCFMT_LEFT, 150);
插入列
m_DataList.InsertItem(0, "小明", 0);
添加行数据,并设置第一列文本
m_DataList.SetItemText(0, 1, "85");
设置一行2列文本
m_DataList.InsertItem(1, "小雨", 1);
m_DataList.SetItemText(1, 1, "100");
m_DataList.InsertItem(2, "小强", 2);
m_DataList.SetItemText(2, 1, "90");
m_DataList.InsertItem(3, "小红", 3);
m_DataList.SetItemText(3, 1, "92");
m_DataList.InsertItem(4, "小张", 4);
m_DataList.SetItemText(4, 1, "70");