0

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

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

非常感谢!

4

2 回答 2

2

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

列表控件使用图像列表是有原因的;位图以对呈现列表控件最有效的方式存储。你会很难做得更好。

于 2008-10-23T06:33:24.470 回答
1

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

于 2008-10-23T06:47:48.683 回答