如何在MFC中的CListCtrl中插入位图或其他图像对象?

时间:2008-10-23 06:21:21

标签: mfc listview

我想在listctrl中列出一组照片的缩略图。但实现此目的的唯一方法是使用setImageList方法将图像列表绑定到CListCtrl对象并插入如下项:InsertItem(int nItem,LPCTSTR lpszitem,int nImage)。我还必须通过ModifyStyle(LVS_TYPEMASK,LVS_ICON)修改listctrl的样式,以强制它显示每个项目的图标。

我不认为这种方法是实现目标的好方法。我可以直接在CListCtrl中添加位图项或其他图像对象吗?

非常感谢!

2 个答案:

答案 0 :(得分:2)

为什么你认为这不是一个好方法?您的其他选择是使其成为所有者绘制的控件并自己呈现图像,或通过CListCtrl :: SetCallbackMask使用图像回调。

列表控件使用图像列表是有原因的;位图以最有效的方式存储列表控件。你会很难做到这一点。

答案 1 :(得分:1)

鉴于您需要这些扩展功能,听起来您必须使用所有者绘制。一个很好的例子是here。它没有显示如何绘制图像,但是一旦你设置了所有者绘制程序,你就应该能够使用典型的BitBlts来绘制图像。