CXListCtrl的编辑框无法删除文本
来源:互联网 发布:mt4软件开发 编辑:程序博客网 时间:2024/06/05 22:30
codeproject上有个CXListCtrl,非常好用。
链接:http://www.codeproject.com/Articles/1796/XListCtrl-A-custom-draw-list-control-with-subitem
在使用其编辑框的时候,发现删除功能不起作用,即当删除一个编辑框的内容的时候,它会自动恢复成之前的文本。不清楚作者该设计的意图。
相关的代码如下:
///////////////////////////////////////////////////////////////////////////////// OnXEditKillFocusLRESULT CXListCtrl::OnXEditKillFocus(WPARAM, LPARAM){ XLISTCTRL_TRACE(_T("in CXListCtrl::OnXEditKillFocus\n")); CString str = _T(""); if (m_pEdit && ::IsWindow(m_pEdit->m_hWnd)) { m_pEdit->GetWindowText(str); if (str.IsEmpty()) { // restore original string //str = m_strInitialString; } m_pEdit->DestroyWindow(); delete m_pEdit; } m_pEdit = NULL; // set new string in subitem SetItemText(m_nEditItem, m_nEditSubItem, str); if (str != m_strInitialString) { XLISTCTRL_TRACE(_T("m_strInitialString=<%s>\n"), m_strInitialString); // string is not the same, mark item as modified XLISTCTRLDATA *pXLCD = (XLISTCTRLDATA *) CListCtrl::GetItemData(m_nEditItem); if (pXLCD) { pXLCD[m_nEditSubItem].bModified = TRUE; m_bListModified = TRUE; } } XLISTCTRL_TRACE(_T("current text=<%s>\n"), str); UpdateSubItem(m_nEditItem, m_nEditSubItem); CWnd *pWnd = GetParent(); if (!pWnd) pWnd = GetOwner(); if (pWnd && ::IsWindow(pWnd->m_hWnd)) pWnd->SendMessage(WM_XLISTCTRL_EDIT_END, m_nEditItem, m_nEditSubItem); return 0;}
为了实现删除功能,可以注释掉 if (str.IsEmpty())这个语句块,或者注释掉str=这一行。
if (m_pEdit && ::IsWindow(m_pEdit->m_hWnd)) { m_pEdit->GetWindowText(str); if (str.IsEmpty()) { // restore original string //str = m_strInitialString; } m_pEdit->DestroyWindow(); delete m_pEdit; }
另外就是SetEdit()的一个修改:——原来是可以设置某个单元格是编辑框,但一旦设置之后就不能取消了。
0 0
- CXListCtrl的编辑框无法删除文本
- 应对word无法编辑、无法选中、无法删除的方法
- visual studio 编辑文本无法自动补全的解决方案
- Fences无法编辑删除栅栏
- 关于文本的编辑
- vs2010文本无法进行编辑问题
- 微信135富文本编辑器编辑的样式与页面无法兼容的问题
- android带删除按钮的编辑框
- 带有删除按钮的编辑框
- GridView 的编辑删除
- table的编辑.删除
- 文本的显示与编辑
- ubuntu编辑文本的命令
- 获取界面上的编辑框的文本值
- android activitygroup中edittext文本无法删除
- 编辑框初始化全选文本
- 如何获取在编辑框中选择的文本内容
- VC6.0编辑框CEdit的文本操作
- MySQL数据类型和常用字段属性总结
- 怕人的原因
- onload和ready的区别
- linux下 如何创建默认oracle用户
- CNN卷积神经网络新想法
- CXListCtrl的编辑框无法删除文本
- error while loading shared libraries: libssl.so.6
- String与InputStream相互转换
- Assert和Enumeration的用法
- OS X EL Capitan U盘安装制作
- git安装
- 避免HttpClient的”javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated”异常
- Drools6.1规则引擎环境搭建
- CSS3 Box-shadow