MFC控件(四)(列表视图控件CListControl)

来源:互联网 发布:淘宝市场行情破解版 编辑:程序博客网 时间:2024/05/16 11:29
 

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");

原创粉丝点击