创建控件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); //应藏编辑框
}