MFC列表控件CListCtrl使用方法示范

网友投稿 427 2022-11-29


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 OnNMKillfochttp://usList(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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java通过经纬度坐标获取两个点之间的直线距离的示例
下一篇:详解SpringBoot中的参数校验(项目实战)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~