当前位置:   article > 正文

MFC LIst Control控件键盘输入_mfc实现listctrl双击表格,实现文本输入

mfc实现listctrl双击表格,实现文本输入

创建控件List Control,并创建变量;

创建双击List Control 控件事件:

  1. int m_Row;
  2. int m_Col;
  1. void PageTest::OnNMDblclkList1Log(NMHDR *pNMHDR, LRESULT *pResult)
  2. {
  3. LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
  4. // TODO: 在此添加控件通知处理程序代码
  5. CRect rc;
  6. CString strTemp;
  7. //CString str0;
  8. NM_LISTVIEW *pNMListView = (NM_LISTVIEW *)pNMHDR;
  9. m_Row = pNMListView->iItem;//每一行的item从零开始,双击选中行号
  10. m_Col = pNMListView->iSubItem;//每一行中的列就是SubItem也是从零开始,获得选中列号
  11. if (m_Row == -1 || m_Col == -1)//点击空白处添加一行,并且设置焦点为最后一行第二列
  12. {
  13. m_Row = m_listCtrlLog.GetItemCount();
  14. strTemp.Format(_T("%d"), m_Row + 1);
  15. m_listCtrlLog.InsertItem(m_Row, strTemp);
  16. m_listCtrlLog.SetItemState(m_Row, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
  17. m_listCtrlLog.EnsureVisible(m_Row, FALSE);
  18. }
  19. if (m_Col != -1)//选择子项
  20. {
  21. m_listCtrlLog.GetSubItemRect(m_Row, m_Col, LVIR_LABEL, rc);
  22. m_Edit.SetParent(&m_listCtrlLog);
  23. m_Edit.MoveWindow(rc);
  24. m_Edit.SetWindowText(m_listCtrlLog.GetItemText(m_Row, m_Col));//设置选中框的数值(由用户输入 )
  25. //str0 = m_Edit.GetItemText(m_Row, m_Col);//获取选中框中的数据
  26. m_Edit.ShowWindow(SW_SHOW);//显示在窗口中
  27. m_Edit.SetFocus();//设置edit焦点
  28. m_Edit.ShowCaret();//显示光标
  29. m_Edit.SetSel(-1);
  30. }
  31. *pResult = 0;
  32. }

创建控件Edit,并且创建变量;

创建Edit控件事件,指示控件丢失输入焦点;

  1. void PageTest::OnEnKillfocusEdit1Input()
  2. {
  3. // TODO: 在此添加控件通知处理程序代码
  4. CString tem;
  5. m_Edit.GetWindowText(tem); //得到用户输入的新的内容
  6. m_listCtrlLog.SetItemText(m_Row, m_Col, tem); //设置编辑框的新内容
  7. m_Edit.ShowWindow(SW_HIDE); //应藏编辑框
  8. }

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号