MFC CListCtrl,显示所有控件事件
时间: 2024-01-22 09:03:56 浏览: 223
CListCtrl显示数据
4星 · 用户满意度95%
MFC CListCtrl控件可以响应多种事件,以下是常见的事件及其处理函数:
1. LVN_ITEMCHANGED:当列表项的选中状态改变时触发。可以使用以下代码处理:
```
void CMyDialog::OnItemChangedListCtrl(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if ((pNMListView->uChanged & LVIF_STATE) && (pNMListView->uNewState & LVIS_SELECTED))
{
// 处理选中项改变事件
}
*pResult = 0;
}
```
2. LVN_COLUMNCLICK:当列表头的某一列被单击时触发。可以使用以下代码处理:
```
void CMyDialog::OnColumnClickListCtrl(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
int nColumn = pNMListView->iSubItem;
// 处理列单击事件
*pResult = 0;
}
```
3. LVN_BEGINLABELEDIT:当用户开始编辑某一项时触发。可以使用以下代码处理:
```
void CMyDialog::OnBeginLabelEditListCtrl(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_DISPINFO* pLvdi = (LV_DISPINFO*)pNMHDR;
LVITEM* pItem = &(pLvdi->item);
*pResult = FALSE; // 设置为TRUE表示禁止编辑
}
```
4. LVN_ENDLABELEDIT:当用户完成编辑某一项时触发。可以使用以下代码处理:
```
void CMyDialog::OnEndLabelEditListCtrl(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_DISPINFO* pLvdi = (LV_DISPINFO*)pNMHDR;
LVITEM* pItem = &(pLvdi->item);
// 处理编辑完成事件
*pResult = 0;
}
```
5. LVN_ITEMACTIVATE:当用户双击某一项或按下回车键时触发。可以使用以下代码处理:
```
void CMyDialog::OnItemActivateListCtrl(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// 处理项激活事件
*pResult = 0;
}
```
6. LVN_GETDISPINFO:当控件需要获取某一项的信息时触发。可以使用以下代码处理:
```
void CMyDialog::OnGetDispInfoListCtrl(NMHDR* pNMHDR, LRESULT* pResult)
{
NMLVDISPINFO* pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
LVITEM& lvItem = pDispInfo->item;
// 设置项的信息
*pResult = 0;
}
```
7. LVN_DELETEITEM:当某一项被删除时触发。可以使用以下代码处理:
```
void CMyDialog::OnDeleteItemListCtrl(NMHDR* pNMHDR, LRESULT* pResult)
{
NMLISTVIEW* pNMLV = reinterpret_cast<NMLISTVIEW*>(pNMHDR);
// 处理删除项事件
*pResult = 0;
}
```
以上是常见的事件及其处理函数,开发者可以根据实际需求选择相应的事件进行处理。
阅读全文