由于要在OCX中使用CListCtrl控件,在MFC中的控件属性和方法都不能用,只能老老实实的用消息和宏来实现这个控件的各个功能,所以着实费了点手脚。、
首先将一个CListCtrl控件放入界面中,获得它的句柄以便以后操作这个控件:HWND m_hFileList = ::GetDlgItem(m_hWnd,IDC_LIST_FILELIST);
由于需要关联一个图像列表,但不知什么原因,在OCX中不支持CImageList类的使用,所以换了个方式来创建图像列表:
HIMAGELIST m_hImageList = ImageList_Create(16,16,ILC_COLOR16|ILC_MASK,3,10); // ImageList_Create是一个宏,用法等同于使用消息发送
再导入一个图片,采用外部文件导入的方式:
HBITMAP hBitmap = (HBITMAP)::LoadImage(NULL,_T("E:\\Wait.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE) ;
ImageList_Add(m_hImageList,hBitmap,0) ;
设置CListCtrl控件的风格:ListView_SetExtendedListViewStyle(m_hFileList, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES| LVS_EX_SUBITEMIMAGES );
关联图片列表:ListView_SetImageList(m_hFileList,m_hImageList,LVSIL_SMALL);
然后简单的创建几个列用于显示:
LVCOLUMN list;
list.mask =