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控件失去焦點(diǎn)時(shí)仍保持高亮
1. 頭文件中添加變量m_nSelItem
int m_nSelItem;
2. 為L(zhǎng)istCtrl控件添加NM_KILLFOCUS(失去焦點(diǎn))和NM_SETFOCUS(得到焦點(diǎn))消息
手動(dòng)添加代碼如下:
頭文件中添加聲明
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)
源文件中添加函數(shù)
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屬性一定要設(shè)為FALSE
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++使用curl庫(kù)進(jìn)行http請(qǐng)求的方法詳解
這篇文章主要為大家詳細(xì)介紹了C++如何使用curl庫(kù)進(jìn)行http請(qǐng)求,并且實(shí)現(xiàn)獲取返回的頭信息的時(shí)間,也就是獲取后臺(tái)服務(wù)的當(dāng)前時(shí)間,感興趣的可以了解一下2023-07-07C語(yǔ)言學(xué)習(xí)之柔性數(shù)組詳解
結(jié)構(gòu)體的最后一個(gè)元素允許是未知大小的數(shù)組,這就叫柔性數(shù)組。這篇文中主要為大家詳細(xì)介紹了C語(yǔ)言中柔性數(shù)組的相關(guān)知識(shí),需要的可以了解一下2023-03-03DEV?C++源碼編譯后控制臺(tái)輸出中文亂碼問(wèn)題解決
本文主要介紹了DEV?C++源碼編譯后控制臺(tái)輸出中文亂碼問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01