ListControl双击实现可编辑 2010-11-16 11:40
来源:互联网 发布:软件编程程序培训班 编辑:程序博客网 时间:2024/05/21 10:35
ON_NOTIFY 处理 listControl消息
列表控件的消息映射同样使用ON_NOTIFY宏,形式如同:ON_NOTIFY( wNotifyCode, id, memberFxn ),wNotifyCode为通知代码,id为产生该消息的窗口ID,memberFxn为处理函数,函数的原型如同void OnXXXList(NMHDR* pNMHDR, LRESULT* pResult),其中pNMHDR为一数据结构,在具体使用时需要转换成其他类型的结构。对于列表控件可能取值和对应的数据结构为:
·LVN_BEGINLABELEDIT 在开始某项编辑字符时发送,所用结构:NMLVDISPINFO
·LVN_ENDLABELEDIT 在结束某项编辑字符时发送,所用结构:NMLVDISPINFO
·LVN_GETDISPINFO 在需要得到某项信息时发送,(如得到某项的显示字符)所用结构:NMLVDISPINFO
============= 以上理论转载,应用范例如下=================
范例:双击list item实现item重命名
01
//映射响应鼠标双击和label编辑结束事件
02
BEGIN_MESSAGE_MAP(CPage, CDialog)
03
ON_NOTIFY(NM_DBLCLK, IDC_LIST, &CPage::OnNMDblclkList)
04
ON_NOTIFY(LVN_ENDLABELEDIT, IDC_LIST, &CPage::OnLvnEndlabeleditList)
05
END_MESSAGE_MAP()
06
-------------------------------------------------------------------------------
07
void
CPage::OnNMDblclkList(NMHDR *pNMHDR,
LRESULT
*pResult)
08
{
09
//双击事件产生edit控件,EditLabel会先确定list是否setFocus
10
*pResult = 0;
11
POSITION pos = m_List_Tip.GetFirstSelectedItemPosition();
12
int
tIndex = m_List_Tip.GetNextSelectedItem(pos);
13
if
( tIndex >= 0 )
14
{
15
m_List_Tip.SetFocus();
16
CEdit* pEdit = m_List_Tip.EditLabel( tIndex );
17
}
18
}
19
---------------------------------------------------------------------
20
void
CTipTrapPage::OnLvnEndlabeleditListTip(NMHDR *pNMHDR,
LRESULT
*pResult)
21
{
22
//edit编辑结束事件参数NMHDR *pNMHDR强制转换为对应结构体NMLVDISPINFO
23
//可以得到当前list item的下标和edit的字符
24
NMLVDISPINFO *pDispInfo =
reinterpret_cast
<NMLVDISPINFO*>(pNMHDR);
25
*pResult = 0;
26
CString pName = pDispInfo->item.pszText;
27
int
tIndex = pDispInfo->item.iItem;
28
m_List.SetFocus();
29
if
( ( ! pName.IsEmpty() ) && tIndex >= 0 )
30
{
31
m_List.SetItemText( tIndex, 0, pName);
32
}
33
}
最后别忘了勾上属性:list控件->属性->Styles->Edit labels
上面的代码有误,但解决问题的思路是对的,请仔细使用
- ListControl双击实现可编辑 2010-11-16 11:40
- ListControl双击实现可编辑
- ListControl双击实现可编辑
- ListControl双击实现可编辑
- 双击listcontrol 可编辑
- 双击文本实现可编辑
- 双击文本实现可编辑
- 双击文本实现可编辑
- 使listcontrol可编辑
- 实现JTree双击节点的可编辑
- VC 双击编辑ListControl中的数据
- 双击div变成可编辑区的简单实现
- JS实现双击内容变为可编辑状态
- JS实现双击内容变为可编辑状态
- 双击实现文字编辑
- 双击单元格变成可编辑的文本框
- 双击单元格变成可编辑的文本框
- jquery实现双击编辑表格
- C题目
- linux下-check Tcp连接状态各个参数讲解
- TreeView 控件的属性 2010-11-15 20:40
- JAVA日期相关转化
- Oracle CASE WHEN 用法介绍
- ListControl双击实现可编辑 2010-11-16 11:40
- 【pig】foreach 中对bag进行count
- jQuery事件-事件对象
- VC 移动,复制,删除文件(SHFileOperation) 2010-11-16 12:13
- poj3094
- Eclipse中查看Java源码、Java帮助、Android源码
- Hibernate+struts1整合异常:antlr.collections.AST.getLine()I
- 已有系统中采购的审批设置
- 如何使用反编译软件破解android的布局文件