【问题标题】:How to implement CEditListCtrl如何实现 CEditListCtrl
【发布时间】:2026-01-16 16:05:01
【问题描述】:

如何实现CEditListCtrl?。具有编辑功能的列表控件(报表/网格视图)。 我在报告视图中有一个列表视图。它有一些价值。我需要扩展它以编辑列表视图中存在的值。 我声明了一个继承自 CListCtrl 的类。我已经处理了两个窗口消息来开始和结束编辑。收到消息后,我正在显示一个文本框。但我没有在这些消息处理程序中获得控制权。有没有办法知道原因?

或者有没有其他方法来实现这个。

【问题讨论】:

    标签: c++ visual-c++ mfc


    【解决方案1】:
    【解决方案2】:

    感谢所有回答

    我已经很容易做到了。

    1. 我已经处理了 WM_LBUTTONDOWN。这个处理程序弹出编辑框来获取新的 字段值
    2. 处理 LVN_ENDLABELEDIT 以了解更新结束。
    3. 收到上述消息后,更新值。

    “我忘记的一件事是在资源视图中为 CListCtrl 设置标志(将标签编辑为 TRUE)”

    我们还必须实现 OnPaint()(在 CListCtrl 的派生类中),否则 UI 将无法正确更新

    【讨论】:

      【解决方案3】:

      您需要使用一个 CComboBox,它基本上是 CEdit 和 CListCtrl 的组合

      【讨论】:

      • 但是我在这个列表视图中显示了一个树结构。我认为 CComboBox 是不可能的
      • 好吧,我错了。您是否尝试过使用 CListCtrl::GetEditControl 来获取可用于编辑的 CEdit。
      【解决方案4】:

      这里也有人问过这个问题:

      How to edit columns in-place with CListCtrl?

      您可以在该页面上阅读我的答案。

      【讨论】: