我希望 CListCtrl.EditLabel() 用于列表的任何列。我怎样才能实现这样的功能?
8861 次
2 回答
2
不要尝试使用 CListCtrl。
使用MFC 网格控件。我们成功地将其部署在现成的应用程序中。它为所有单元格提供就地编辑、复选框、旋转等,以及列和行标题、自动大小、自动扩展、颜色、拖放。
于 2008-10-31T18:33:00.493 回答
2
这是可行的,但它确实需要通过鼠标单击和焦点事件进行大量填充。
简而言之,您捕获鼠标左键按下消息并将其转换为单元格命中详细信息(即行和列索引)。
使用这些单元格详细信息,您无法确定列表视图单元格的大小和位置以及它包含的文本值。
现在使用上一步中的大小和位置详细信息直接在此单元格上创建一个 CEdit 控件,并为其提供单元格的文本值。
最后一步是处理 CEdit 的焦点和键盘输入事件,以便可以将 CEdit 的文本详细信息放回列表视图单元格中。
它确实需要大量的编码,但如果做得好,它确实可以很好地替代网格控件。
于 2008-11-02T23:49:58.183 回答