Super ListCtrl for MFC - 可以内嵌CheckBox, Radio, Combo, Edit, Progress, 支持排序

由于需要ListCtrl可以内嵌CheckBox, Radio, Combo, Edit, Progress, 并且支持按字符串,日期,数字格式排序,在网上搜罗一阵也没找到合适的,只好自己动手改造,效果还不错

//  ListCtrl should be set with LVS_REPORT style

 // ListCtrlCellEx.h - ListCtrl单元格以及HeadCtrl

Code

 // ListCtrlCellEx.cpp

Code

 // ListCtrlEx.h - 去除 //#define USING_CUSTOM_DRAW前面的注释,即启用自绘效果

Code

 // ListCtrlEx.cpp

Code

// demo

 

ListCtrlExDemo

对于使用ListCtrl控件实现编辑(Edit),下拉框(ComboBox)和复选框(Checkbox)功能,可以通过以下步骤进行实现: 1. 创建ListCtrl控件并设置样式: ```python import wx class MyFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, wx.ID_ANY, "ListCtrl Demo") self.list_ctrl = wx.ListCtrl(self, style=wx.LC_REPORT|wx.LC_EDIT_LABELS) self.list_ctrl.InsertColumn(0, "Column 1") self.list_ctrl.InsertColumn(1, "Column 2") ``` 2. 实现编辑功能: ```python # 绑定编辑事件 self.list_ctrl.Bind(wx.EVT_LIST_BEGIN_LABEL_EDIT, self.OnBeginEdit) self.list_ctrl.Bind(wx.EVT_LIST_END_LABEL_EDIT, self.OnEndEdit) # 处理编辑事件 def OnBeginEdit(self, event): item = event.GetItem() col = item.GetColumn() # 判断是否允许编辑某一列 if col == 0: event.Veto() def OnEndEdit(self, event): item = event.GetItem() new_label = event.GetLabel() # 处理编辑后的数据 ``` 3. 实现下拉框功能: ```python # 创建下拉框编辑器 editor = wx.Combobox(self.list_ctrl, choices=["Option 1", "Option 2", "Option 3"]) # 绑定下拉框编辑器到列 self.list_ctrl.SetEditor(editor, col=1) ``` 4. 实现复选框功能: ```python # 创建复选框编辑器 editor = wx.CheckListBox(self.list_ctrl) editor.Append("Checkbox 1") editor.Append("Checkbox 2") editor.Append("Checkbox 3") # 绑定复选框编辑器到列 self.list_ctrl.SetEditor(editor, col=2) ``` 这样,你就可以在ListCtrl控件中实现编辑、下拉框和复选框的功能了。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值