如何在 CListCtrl 中拆分单个单元格

Posted

技术标签:

【中文标题】如何在 CListCtrl 中拆分单个单元格【英文标题】:How to split single cells in a CListCtrl 【发布时间】:2013-02-07 13:19:21 【问题描述】:

我目前正在开发一个 C++/MFC 应用程序,并且我有各种列表控件(例如 CListCtrlStyled 对象:

我需要一种将单个行拆分为多列的方法无需更改同一行中的单元格。

Here你可以看到我想要达到的结果。

起初,我想在另一个列表中插入一个列表,但这种方式似乎不可行...... 有没有其他方法可以获得类似的效果? 欢迎提供外部文档和/或示例代码的链接。

谢谢

【问题讨论】:

我将从grid control 或The Ultimate Grid 控件开始。我的猜测是,您最终不会拆分单个单元格,而是合并您想要更少的单元格。即使在那里,它们也可能没有真正合并——你可能最终得到不可见的零宽度单元格(或者它可能只是让你指定每行不同数量的单元格——我不记得了)。 您需要通过实现CListCtrl的自定义绘制子类来接管CListCtrl正常绘制操作的一部分。参考:msdn.microsoft.com/en-us/library/ms364048(v=vs.80).aspx 我使用 UltimateGrid 控件解决了我的问题。谢谢,杰瑞! :-) 【参考方案1】:

你可以使用

LPNMHEADER phdr = reinterpret_cast(pNMHDR); NMLISTVIEW *pLV = (NMLISTVIEW *) pNMHDR;

pLV->iItem; pLV->iSubItem;

【讨论】:

以上是关于如何在 CListCtrl 中拆分单个单元格的主要内容,如果未能解决你的问题,请参考以下文章

在 CListCtrl 上设置背景单元格颜色

MFC CListCtrl 更新任何单元格的文本

使用 CListCtrl,如何使选择颜色整行?

JQuery Datatable - 将单个单元格拆分为多列以提高可读性?

如何使用 CListCtrl 就地编辑列?

如何在excel中拆分单元格