ListControl双击实现可编辑
来源:互联网 发布:linux 别的 时钟同步 编辑:程序博客网 时间:2024/05/08 08:09
ON_NOTIFY处理listControl消息
列表控件的消息映射同样使用ON_NOTIFY宏,形式如同:ON_NOTIFY( wNotifyCode, id, memberFxn),wNotifyCode为通知代码,id为产生该消息的窗口ID,memberFxn为处理函数,函数的原型如同voidOnXXXList(NMHDR* pNMHDR, LRESULT*pResult),其中pNMHDR为一数据结构,在具体使用时需要转换成其他类型的结构。对于列表控件可能取值和对应的数据结构为:
·LVN_BEGINLABELEDIT在开始某项编辑字符时发送,所用结构:NMLVDISPINFO
·LVN_ENDLABELEDIT在结束某项编辑字符时发送,所用结构:NMLVDISPINFO
·LVN_GETDISPINFO在需要得到某项信息时发送,(如得到某项的显示字符)所用结构:NMLVDISPINFO
============= 以上理论转载,应用范例如下=================
范例:双击list item实现item重命名
//映射响应鼠标双击和label编辑结束事件
BEGIN_MESSAGE_MAP(CPage, CDialog)
ON_NOTIFY(NM_DBLCLK, IDC_LIST,&CPage::OnNMDblclkList)
ON_NOTIFY(LVN_ENDLABELEDIT, IDC_LIST,&CPage::OnLvnEndlabeleditList)
END_MESSAGE_MAP()
-------------------------------------------------------------------------------
void CPage::OnNMDblclkList(NMHDR *pNMHDR, LRESULT*pResult)
{
//双击事件产生edit控件,EditLabel会先确定list是否setFocus
*pResult = 0;
POSITION pos = m_List_Tip.GetFirstSelectedItemPosition();
int tIndex = m_List_Tip.GetNextSelectedItem(pos);
if ( tIndex >= 0 )
{
m_List_Tip.SetFocus();
CEdit* pEdit = m_List_Tip.EditLabel( tIndex );
}
}
---------------------------------------------------------------------
void CTipTrapPage::OnLvnEndlabeleditListTip(NMHDR*pNMHDR, LRESULT *pResult)
{
//edit编辑结束事件参数NMHDR*pNMHDR强制转换为对应结构体NMLVDISPINFO
//可以得到当前list item的下标和edit的字符
NMLVDISPINFO *pDispInfo =reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
*pResult = 0;
CString pName = pDispInfo->item.pszText;
int tIndex = pDispInfo->item.iItem;
m_List.SetFocus();
if( ( ! pName.IsEmpty() ) && tIndex>= 0 )
{
m_List.SetItemText( tIndex, 0, pName);
}
}
最后别忘了勾上属性:list控件->属性->Styles->Editlabels;
注意:开头的消息类型
HDN:Header Notify
LVN:ListView control Notify
TVN:TreeView control Notify
NM:Notify Message
- ListControl双击实现可编辑
- ListControl双击实现可编辑
- ListControl双击实现可编辑
- 双击listcontrol 可编辑
- ListControl双击实现可编辑 2010-11-16 11:40
- 双击文本实现可编辑
- 双击文本实现可编辑
- 双击文本实现可编辑
- 使listcontrol可编辑
- 实现JTree双击节点的可编辑
- VC 双击编辑ListControl中的数据
- 双击div变成可编辑区的简单实现
- JS实现双击内容变为可编辑状态
- JS实现双击内容变为可编辑状态
- 双击实现文字编辑
- 双击单元格变成可编辑的文本框
- 双击单元格变成可编辑的文本框
- jquery实现双击编辑表格
- verilog综合小结
- Android日记之2012/02/11——浅谈Iterator设计模式
- OpenCV 矩阵操作
- yum报错"This system is not registered with RHN"
- iPhone开发学习笔记001——Xib界面上的控件与代码的相互关联方法
- ListControl双击实现可编辑
- USB子系统源码分析
- Android日记之2012/02/12——Android中正则表达式使用
- 关于VC6.0下不能添加源文件到工程的解决方法
- 滤波电容、去耦电容、旁路电容
- 在 Ruby on Rails 应用程序中重用 Java 代码
- 比较具有从google earth下载影像并拼接功能的两个软件getscreen VS sggs
- vmware的vmdk文件的瘦身
- 个人作品——豆瓣FM客户端