如何在ListCtrl控件中的某固定一列的每一行添加如Edit,CommBox等这样的控件?高分急请高手!

时间:2022-09-21 19:20:21
各位师兄,师姐们:
请问如何在ListCtrl控件中的某固定一列的每一行添加如Edit,CommBox等这样的控件?
谢谢!!

7 个解决方案

#1


http://www.codeguru.com/Cpp/controls/listview/editingitemsandsubitem/article.php/c979/

#2


手头有个可编辑的列表控件的例子。提供信箱即发送。

#3


我的信箱是:wg202wg_2002@163.net
谢谢!散分!!

#4


方法一是动态创建
方法二是隐藏一个edit、combobox

用户鼠标点击某格,根据这个格子的属性,将edit或combobox显示出来,并且提取格子的值放到edit或combobox中,编辑完成后,再将用户写到edit或combobox中的值回写到list相应的格子中。

#5


以发送

#6


谢谢!

#7



MFCGridCtrl 等网格控件有类似的功能.

在 listctrl 的 subitems 上创建控件和普通方式差不多, 但是要维护这些控件的状态就需要花些工夫了.

 一般的方法是做一个 itemdata 的类, 这个类有个HWND 数组组合成员表示每行的控件集, 一些其他控制信息, 以及标准的状态通知接口, 该接口不一定要耦合到 listctrl 上. 对于 subitems 上不同的控件类型可以从这个类继承并封装将状态作用于 HWND 上的操作.  最后, 用 SetItemData 将这个类对象实例指针绑定到某个 item 上.

或者可以考虑模板来构造.

#1


http://www.codeguru.com/Cpp/controls/listview/editingitemsandsubitem/article.php/c979/

#2


手头有个可编辑的列表控件的例子。提供信箱即发送。

#3


我的信箱是:wg202wg_2002@163.net
谢谢!散分!!

#4


方法一是动态创建
方法二是隐藏一个edit、combobox

用户鼠标点击某格,根据这个格子的属性,将edit或combobox显示出来,并且提取格子的值放到edit或combobox中,编辑完成后,再将用户写到edit或combobox中的值回写到list相应的格子中。

#5


以发送

#6


谢谢!

#7



MFCGridCtrl 等网格控件有类似的功能.

在 listctrl 的 subitems 上创建控件和普通方式差不多, 但是要维护这些控件的状态就需要花些工夫了.

 一般的方法是做一个 itemdata 的类, 这个类有个HWND 数组组合成员表示每行的控件集, 一些其他控制信息, 以及标准的状态通知接口, 该接口不一定要耦合到 listctrl 上. 对于 subitems 上不同的控件类型可以从这个类继承并封装将状态作用于 HWND 上的操作.  最后, 用 SetItemData 将这个类对象实例指针绑定到某个 item 上.

或者可以考虑模板来构造.