禁用/隐藏 CListCtrl MFC 中的项目

Disable/Hide Items in a CListCtrl MFC

本文关键字:项目 MFC CListCtrl 隐藏 禁用      更新时间:2023-10-16

我想使用 SetItemState() 隐藏或禁用项目。CListCtrl 位于报表视图中。一定是这样的m_List.SetItemState(1, DISABLE, DISABLE);

我搜索但没有找到正确的状态

如果有SetItemState以外的其他解决方案,也可以

谁能帮我?

没有表示禁用(灰色)项目的项目状态。查看文档解决此问题的唯一方法是您自己的实现并使用自定义绘制。这就是我的做法。

您可以轻松阻止用户在捕获LVN_ITEMCHANGING时选择项目。只需将状态"更改为LVIS_SELECTED"并返回 TRUE 即可阻止更改。

您可以提供视觉反馈。我将派生一个类CMFCListCtrl并覆盖OnGetCellBkColorOnGetCellTextColor方法来实现它。

当选择不可选择的项目时,我会覆盖其对选择的响应以取消选择。但是对于这部分,我不确定它是否可行。