MFC列表控件CListCtrl使用方法示范
CListCtrl获取选中的某一行
POSITIONps=m_list.GetFirstSelectedItemPosition(); intnSel=m_list.GetNextSelectedItem(ps);//选中的哪行的索引(based0) //或 if(m_list.GetSelectedCount()<1) return; intnSel=m_list.GetSelectionMark();
CListCtrl控件失去焦点时仍保持高亮
1.头文件中添加变量m_nSelItem
intm_nSelItem;
2.为ListCtrl控件添加NM_KILLFOCUS(失去焦点)和NM_SETFOCUS(得到焦点)消息
手动添加代码如下:
头文件中添加声明
afx_msgvoidOnNMKillfocusList(NMHDR*pNMHDR,LRESULT*pResult);
afx_msgvoidOnNMSetfocusList(NMHDR*pNMHDR,LRESULT*pResult);
源文件中添加映射
ON_NOTIFY(NM_KILLFOCUS,IDC_LISTCTRL,OnNMKillfocusList)
ON_NOTIFY(NM_SETFOCUS,IDC_LISTCTRL,OnNMSetfocusList)
源文件中添加函数
voidCPageListView::OnNMKillfocusList(NMHDR*pNMHDR,LRESULT*pResult) { //TODO:在此添加控件通知处理程序代码 m_nSelItem=m_ListCtrl.GetSelectionMark(); m_ListCtrl.SetItemState(m_nSelItem,LVIS_DROPHILITED,LVIS_DROPHILITED); *pResult=0; } voidCPageListView::OnNMSetfocusList(NMHDR*pNMHDR,LRESULT*pResult) { //TODO:在此添加控件通知处理程序代码 m_ListCtrl.SetItemState(m_nSelItem,FALSE,LVIF_STATE); *pResult=0; }
注意:AlwaysShowSelection属性一定要设为FALSE
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。