1

据我所知ON_WM_MEASUREITEM,不会在自定义绘制列表控件中调用。仅当控件为所有者绘制时才使用。

我找到了一种方法来做到这一点,但这有点像 HACK,我仍然无法控制它们以某种方式自动设置的项目之间的差距。

诀窍是您可以CImageList使用所需大小的未使用图像创建,如果将此类图像列表分配给列表控件,则项目的大小将调整为接近图像大小的尺寸。之后,您可以使用自定义绘图在这些放大的项目中绘制任何内容。

CImageList m_imageList1;
m_imageList1.Create(176, 144, ILC_COLOR32 | ILC_MASK, 5, 1);
GetListCtrl().SetImageList(&m_imageList1, LVSIL_NORMAL);

所以问题是如何在自定义淹没控件中更改项目大小和它们之间的间距?

LVS_OWNERDRAWFIXED还是我唯一的选择是完全由所有者绘制的控件?

4

1 回答 1

1

更新。
我在 VS2008 中编译了相同的自定义绘制列表控件。而且神色不一样了。物品尺寸完美,物品之间没有间隙。我想我遇到的尺寸问题只是在 VS2003 的 MFC 中,我最初使用的是 VS2003。
伙计,MFC 是一个持续的 HACK 狂欢 :-)

我想问题已经结束了。
谢谢你(我)。

于 2008-10-26T14:58:46.813 回答