如果任何列中都不需要图像/图标,MFC CListCtrl 是不是合适?

Posted

技术标签:

【中文标题】如果任何列中都不需要图像/图标,MFC CListCtrl 是不是合适?【英文标题】:Is MFC CListCtrl suitable if no image/icon is wanted in any column?如果任何列中都不需要图像/图标,MFC CListCtrl 是否合适? 【发布时间】:2019-04-23 14:20:38 【问题描述】:

MFC CListCtrl 强调它可以在各种模式下显示小/大图标。我想在 ReportView 模式下使用控件,没有任何图标。 换句话说,我希望在所有列中显示文本。

我可以这样做吗? 如果不是,什么 MFC 控件适合这个问题? 我很惊讶在任何列中显示具有任意类型的网格(或在任何行/列位置显示任意类型)的一般问题。

我考虑过 ListView,但我认为这不适合我的问题。

谢谢

【问题讨论】:

【参考方案1】:

答案是肯定的,在查看InsertItem() 方法的可用重载时已经可以得出结论。最简单的重载不需要你传递图像索引:

int InsertItem(
    int nItem,
    LPCTSTR lpszItem);

即使使用最复杂的重载,也不需要定义图像索引:

int InsertItem(const LVITEM* pItem);

要使用LVITEM::iImage 成员,您必须在LVITEM::mask 成员中包含LVIF_IMAGE 标志。只需不理会该标志,即可插入不带图标的项目。

【讨论】:

【参考方案2】:

当然,mfc clistview 在报告模式下无需任何图标即可工作。我就这样使用它,作为穷人的电子表格。

【讨论】:

以上是关于如果任何列中都不需要图像/图标,MFC CListCtrl 是不是合适?的主要内容,如果未能解决你的问题,请参考以下文章

关于CListCtrl和CTreeCtrl的状态图像的问题 相当初级 MFC高手进来

MFC - 如何禁用列表项?

MFC 工具箱控件

选择正确的数据结构

MFC-CImagelist图像列表控件

MFC更换窗口图标