我想用 SetItemState() 隐藏或禁用项目。CListCtrl 在报告视图中。它必须是这样的 m_List.SetItemState(1, DISABLE, DISABLE);
我搜索但没有找到正确的 nState
如果有除 SetItemState 之外的其他解决方案,也可以
谁能帮我?
没有项目状态来表示禁用(灰色)项目。请参阅文档 解决此问题的唯一方法是您自己的实现并使用自定义绘制。我就是这样做的。
当您捕获LVN_ITEMCHANGING时,您可以轻松地阻止用户选择一个项目。只需将状态 Change 过滤为 LVIS_SELECTED 并返回 TRUE 以防止更改。
您可以提供视觉反馈。我会派生一个类CMFCListCtrl
并重写OnGetCellBkColor
和OnGetCellTextColor
实现它的方法。
而且,在选择不可选择的项目时,我将覆盖其对选择的响应以取消选择。但是对于这部分,我不太确定它是否可行。