当前位置:   article > 正文

ListControl双击实现可编辑

可编辑list control

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重命名

  1. //映射响应鼠标双击和label编辑结束事件
  2. BEGIN_MESSAGE_MAP(CPage, CDialog)
  3. ON_NOTIFY(NM_DBLCLK, IDC_LIST, &CPage::OnNMDblclkList)
  4. ON_NOTIFY(LVN_ENDLABELEDIT, IDC_LIST, &CPage::OnLvnEndlabeleditList)
  5. END_MESSAGE_MAP()
  6. -------------------------------------------------------------------------------
  7. void CPage::OnNMDblclkList(NMHDR *pNMHDR, LRESULT *pResult)
  8. {
  9. //双击事件产生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;

转载于:https://www.cnblogs.com/rogee/archive/2010/11/05/1869963.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/301722
推荐阅读
  

闽ICP备14008679号