MFC CListCtrl调整项目高度。 (LVS_SMALLICON)

时间:2013-11-26 06:47:36

标签: mfc clistctrl

谢谢!

我想调整项目的高度。看起来像这样:

enter image description here

但实际上是:

enter image description here

我找到3种调整项目高度的方法:

(1)。添加图片但文字不在中心。

m_ImageListCList.Create(16,36/*Here*/,ILC_COLOR24|ILC_MASK,$Cnt ,$Cnt);
m_ImageListCList.Add(&Bitmap2, RGB(192, 192, 192));
m_listSchedule.SetImageList(&m_ImageListCList, LVSIL_SMALL);

enter image description here

(2)。编辑字体大小,它不是很漂亮

enter image description here

(3)。我想覆盖它的DrawItem()MeasureItem()函数。

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
afx_msg void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
ON_WM_MEASUREITEM_REFLECT()
ON_WM_DRAWITEM()

但是MeasureItem()是有效的,DrawItem()无法调用。 然后我找到了这个背景

MSDN知识库Q131788: LVS_OWNERDRAWFIXED样式仅与LVS_REPORT样式兼容。您不能让所有者使用LVS_ICON,LVS_SMALLICON或LVS_LIST样式绘制ListView。

现在,我没有更好的主意......非常感谢你的帮助!!

1 个答案:

答案 0 :(得分:1)

当MeasureItem工作时,您可以调整项目大小,但是您是否尝试过NM_CUSTOMDRAW。它应该适用于AFAIK。

如果您只需要显示图标和某些文字并想要选择数据,那么列表框是否足够? 使用经典的ListBox和一些Ownerdraw mechansim。