MFC LIst Control控件键盘输入

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

创建双击List Control 控件事件:

int m_Row;
int m_Col;
void PageTest::OnNMDblclkList1Log(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码

	CRect rc;
	CString strTemp;
	//CString str0;
	NM_LISTVIEW *pNMListView = (NM_LISTVIEW *)pNMHDR;
	m_Row = pNMListView->iItem;//每一行的item从零开始,双击选中行号
	m_Col = pNMListView->iSubItem;//每一行中的列就是SubItem也是从零开始,获得选中列号
	if (m_Row == -1 || m_Col == -1)//点击空白处添加一行,并且设置焦点为最后一行第二列
	{
		m_Row = m_listCtrlLog.GetItemCount();
		strTemp.Format(_T("%d"), m_Row + 1);
		m_listCtrlLog.InsertItem(m_Row, strTemp);
		m_listCtrlLog.SetItemState(m_Row, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
		m_listCtrlLog.EnsureVisible(m_Row, FALSE);
	}
	if (m_Col != -1)//选择子项
	{
		m_listCtrlLog.GetSubItemRect(m_Row, m_Col, LVIR_LABEL, rc);
		m_Edit.SetParent(&m_listCtrlLog);
		m_Edit.MoveWindow(rc);
		m_Edit.SetWindowText(m_listCtrlLog.GetItemText(m_Row, m_Col));//设置选中框的数值(由用户输入 )
		//str0 = m_Edit.GetItemText(m_Row, m_Col);//获取选中框中的数据
		m_Edit.ShowWindow(SW_SHOW);//显示在窗口中
		m_Edit.SetFocus();//设置edit焦点
		m_Edit.ShowCaret();//显示光标
		m_Edit.SetSel(-1);
	}
	*pResult = 0;
}

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

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

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值