为LIST Control添加图标

来源:互联网 发布:马云持有阿里多少股份 编辑:程序博客网 时间:2024/06/04 19:42
list控件一般有四种type可进行选择ICON(标准),SMALL ICON(小图标),LIST(列表),REPORT(报表),其中LIST与REPORT就不进行讲解,此次说明怎么在LIST控件中添加图标。
1.要为list控件添加图标,则需要使用CImageList控件,并且将LIST控件type更改为ICON或者SMALLICON(注意区别,下面会进行说明)。
2.主要使用的函数:(1)SetImageList(ImageList*   pImageList,   类型),(2)Creater(CImageList *pImageList)。(3)InsertItem(int nItem,LPCSTR lpszitem, int image)另外需要填加一个HICON 数组;下面用一段程序说明(此程序使用本地图标)。
3,打开vc工程,建立一个基本对话框应用工程,删除自动添加的控件,拖入一个List控件,更改类型为ICON。添加list控件变量本次使用m_ListCtrl。
4.打开.h文件,添加CImageList m_ImageList;
5.打开OnInitDialog()添加代码:
    HICON myIcon[8];
    for( int i=0; i<8; i++)
        myIcon[i] = AfxGetApp()->LoadIcon( IDR_MAINFRAME )//这里使用LoadIcon获得HICON  其中IDR_MAINFRAME为系统默认图标
    m_ImageList.Create( 32, 32, ILC_COLOR32, 4, 4);
    for( i=0; i<8; i++)
        m_ImageList.Add(myIcon[i]);
     m_ListCtrl.SetImageList(&m_ImageList, LVSIL_NORMAL);  
     for(i=0; i < 8; i++)   
     {
        LVITEM lvitem;
        lvitem.mask = LVIF_IMAGE|LVIF_TEXT;
        lvitem.iItem = i;  
        lvitem.pszText = " ";  
        lvitem.iImage = i;  
        lvitem.iSubItem = 0;   
        m_ListCtrl.InsertItem(&lvitem);
 // ((CListCtrl *) lParam)->InsertItem(i,m_strTitle, i);
     }
完成,测试成功。
6.注意这里list控件类型是ICON,如果是SMALLICON需更改m_ListCtrl.SetImageList(&m_ImageList, LVSIL_NORMAL);第二个参数更改为LVSIL_SMALL即可。