在MFC CListCtrl 的LVS_ICON 和LVS_REPORT是否冲突?
在MFC CListCtrl 的LVS_ICON 和LVS_REPORT是否冲突?我想用CImageList 和CListCtrl结合绘制一个多行多列的缩略图列表 但每次设置Listctrl属性时
void CListViewView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// TODO: 在此添加专用代码和/或调用基类
CRect rect;
::GetWindowRect(m_hWnd,rect);
ScreenToClient(&rect);
m_ListCtrl.Create( WS_CHILD | WS_VISIBLE | WS_BORDER | LVS_SHOWSELALWAYS
|LVS_ALIGNTOP|LVS_ICON|LVS_SINGLESEL|LVS_AUTOARRANGE,rect,this,12309);
m_ListCtrl.InsertColumn(0, _T("浏览"), LVCFMT_IMAGE|LVCFMT_CENTER, 200);
m_ListCtrl.InsertColumn(1, _T("马赛克"), LVCFMT_IMAGE|LVCFMT_CENTER, 200);
m_ListCtrl.InsertColumn(2, _T("提色"), LVCFMT_CENTER, 200);
m_ImageList.Create(160, 120, ILC_COLORDDB|ILC_MASK, 20, 1);
m_ListCtrl.SetImageList(&m_ImageList, LVSIL_NORMAL);
// 设置行距和间距
m_ListCtrl.SetIconSpacing(CSize(160+10,120+10));
// 重置CImageList
for(int i=0; i<m_ImageList.GetImageCount(); i++)
m_ImageList.Remove(i);
// 删除ClistCtrl内容
m_ListCtrl.DeleteAllItems();
int m_listRowCount = 10;
CBitmap* bitmap;
bitmap=new CBitmap[m_listRowCount];
HBITMAP hbitmap;
for(int i = 0; i < m_listRowCount; i++)
{
//为每一行插入相应的缩略图
hbitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(),_T("111.bmp"),IMAGE_BITMAP,0,0,
LR_CREATEDIBSECTION|LR_DEFAULTSIZE|LR_LOADFROMFILE);
bitmap[i].Attach(hbitmap);
m_ImageList.Add(&bitmap[i], RGB(0, 128, 128));
//插入行
m_ListCtrl.InsertItem(i,_T("01.jpg"),i);
m_ListCtrl.SetItemText(i,1,_T("JPEG"));
m_ListCtrl.SetItemText(i,2,_T("FAN"));
}
//记得删除已经没用的临时文件
if(m_listRowCount!=0)
delete[] bitmap;
}
显示效果是无法达到多行多列的;
而这里我想加入LVS_REPORT使得ListCtrl有报表效果,结果所有图片都没有了。变成了都是数据的报表?
没什么分人穷
还请各位大哥帮忙 谢谢!!