MFC列表控件CListCtrl MFC列表控件CListCtrl使用方法示范
htj10 人气:0想了解MFC列表控件CListCtrl使用方法示范的相关内容吗,htj10在本文为您仔细讲解MFC列表控件CListCtrl的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:MFC,列表控件,CListCtrl,下面大家一起来学习吧。
CListCtrl 获取选中的某一行
POSITION ps = m_list.GetFirstSelectedItemPosition(); int nSel = m_list.GetNextSelectedItem(ps);//选中的哪行的索引(based 0) // 或 if(m_list.GetSelectedCount() <1) return; int nSel = m_list.GetSelectionMark();
CListCtrl控件失去焦点时仍保持高亮
1. 头文件中添加变量m_nSelItem
int m_nSelItem;
2. 为ListCtrl控件添加NM_KILLFOCUS(失去焦点)和NM_SETFOCUS(得到焦点)消息
手动添加代码如下:
头文件中添加声明
afx_msg void OnNMKillfocusList(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnNMSetfocusList(NMHDR *pNMHDR, LRESULT *pResult);
源文件中添加映射
ON_NOTIFY(NM_KILLFOCUS, IDC_LISTCTRL, OnNMKillfocusList)
ON_NOTIFY(NM_SETFOCUS, IDC_LISTCTRL, OnNMSetfocusList)
源文件中添加函数
void CPageListView::OnNMKillfocusList(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: 在此添加控件通知处理程序代码 m_nSelItem = m_ListCtrl.GetSelectionMark(); m_ListCtrl.SetItemState(m_nSelItem, LVIS_DROPHILITED, LVIS_DROPHILITED); *pResult = 0; } void CPageListView::OnNMSetfocusList(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: 在此添加控件通知处理程序代码 m_ListCtrl.SetItemState(m_nSelItem, FALSE, LVIF_STATE); *pResult = 0; }
注意:Always Show Selection属性一定要设为FALSE
加载全部内容