3

我想用 SetItemState() 隐藏或禁用项目。CListCtrl 在报告视图中。它必须是这样的 m_List.SetItemState(1, DISABLE, DISABLE);

我搜索但没有找到正确的 nState

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

谁能帮我?

4

2 回答 2

4

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

当您捕获LVN_ITEMCHANGING时,您可以轻松地阻止用户选择一个项目。只需将状态 Change 过滤为 LVIS_SELECTED 并返回 TRUE 以防止更改。

于 2013-11-11T08:05:17.467 回答
0

您可以提供视觉反馈。我会派生一个类CMFCListCtrl并重写OnGetCellBkColorOnGetCellTextColor实现它的方法。

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

于 2016-10-13T22:59:05.767 回答