如不采取其他方法,MFC listCtrl控件只有第一列可以编辑,这显然不能满足我们的需要,我们希望list中的每个cell都能编辑。本人参考下面的文章,实现了 listCtrl控件可编辑。
https://blog.csdn.net/weixin_41485242/article/details/80601588
总体思路
向窗口中添加一个editor控件,双击某个单元格时,让editor覆盖在单元格上,制造一种单元格可编辑的样子。
程序中作如下修改:
1)窗口初始化函数中让editeditor隐藏
2)重写listCtrl控件的OnLButtonDblClk函数。移动editor的位置,改变editor的大小,让它完全覆盖在选中的单元格上,将单元格的内容显示在editor中。
3)重写editor的OnEnKillfocus函数。获得editor的内容,并将获得的结果赋给listCtrl相应的单元格,最后让editor隐藏(整个过程仿佛editor从来没出现过一样,哈哈哈)。
单元格的行、列值作为整个窗口的成员变量,在listCtrl控件的OnLButtonDblClk函数和editor的OnEnKillfocus函数中默默传递着。