一 属性设置
Edit Labels属性设置为True,可以就地编辑项文本,仅仅设置个属性是不够的。
View属性设置为Report或者是List
当View的属性为Report的时候只能编辑第一列
二 List Control的初始化
m_List_ctlDemo.InsertColumn(0, L"编号", LVCFMT_LEFT, 100);
m_List_ctlDemo.InsertColumn(1, L"水果", LVCFMT_LEFT, 100);
m_List_ctlDemo.InsertColumn(2, L"产地", LVCFMT_LEFT, 100);
m_List_ctlDemo.InsertItem(0,L"1");
m_List_ctlDemo.SetItemText(0,1,L"苹果");
m_List_ctlDemo.SetItemText(0,2,L"北方");
m_List_ctlDemo.InsertItem(1,L"2");
m_List_ctlDemo.SetItemText(1,1,L"橘子");
m_List_ctlDemo.SetItemText(1,2,L"南方");
三 添加控件事件NM_DBLCLK
双击发送NM_DBLCLK
void CListDemoDlg::OnNMDblclkListDemo(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
POSITION pos = m_List_ctlDemo.GetFirstSelectedItemPosition();
int nIndex = m_List_ctlDemo.GetNextSelectedItem(pos);
if (nIndex>=0)
{
m_List_ctlDemo.SetFocus();
CEdit* pEdit = m_List_ctlDemo.EditLabel( nIndex );
}
*pResult = 0;
}
四 添加控件事件LVN_ENDLABELEDIT
在结束某项编辑字符时发送LVN_ENDLABELEDIT
void CListDemoDlg::OnLvnEndlabeleditListDemo(NMHDR *pNMHDR, LRESULT *pResult)
{
NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
CString strName = pDispInfo->item.pszText;
int nIndex = pDispInfo->item.iItem;
m_List_ctlDemo.SetFocus();
if((!strName.IsEmpty()) && nIndex>= 0)
{
m_List_ctlDemo.SetItemText( nIndex, 0, strName);
}
*pResult = 0;
}
以上程序在 VC++2005 Unicode字符集下调试通过