MFC 实现 列表控件 可编辑
时间: 2024-02-23 22:55:56 浏览: 172
MFC 中的列表控件可以通过设置其风格为 LVS_EDITLABELS 来实现可编辑功能。具体步骤如下:
1. 在资源编辑器中添加一个列表控件,并设置其风格为 LVS_REPORT 和 LVS_EDITLABELS。
2. 在代码中获取列表控件的指针,并调用其 EnableWindow(FALSE) 方法禁用控件,以便在编辑标签时不会触发其他操作。
3. 在需要编辑标签时,调用列表控件的 EditLabel 方法打开标签编辑框。
4. 重载列表控件的 OnEndLabelEdit 方法,在编辑完成后获取编辑后的文本并进行处理。
示例代码如下:
// 声明列表控件指针
CListCtrl* pListCtrl;
// 获取列表控件指针
pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST1);
// 禁用列表控件
pListCtrl->EnableWindow(FALSE);
// 打开标签编辑框
int nItem = pListCtrl->GetSelectionMark();
if (nItem >= 0)
{
pListCtrl->EditLabel(nItem);
}
// 重载 OnEndLabelEdit 方法
void CMyDlg::OnEndLabelEdit(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
// 获取编辑后的文本
CString strText = pDispInfo->item.pszText;
// 进行处理...
// 启用列表控件
pListCtrl->EnableWindow(TRUE);
*pResult = 0;
}
阅读全文