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. 為ListCtrl控件添加NM_KILLFOCUS(失去焦點(diǎn))和NM_SETFOCUS(得到焦點(diǎn))消息
手動添加代碼如下:
頭文件中添加聲明
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
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++控制臺實(shí)現(xiàn)簡單人機(jī)對弈井字棋
這篇文章主要為大家詳細(xì)介紹了C++控制臺實(shí)現(xiàn)簡單人機(jī)對弈井字棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
c++基礎(chǔ)語法:構(gòu)造函數(shù)初始化列表
構(gòu)造函數(shù)需要初始化的數(shù)據(jù)成員,不論是否顯示的出現(xiàn)在構(gòu)造函數(shù)的成員初始化列表中,都會在該處完成初始化,并且初始化的順序和其在聲明時(shí)的順序是一致的,與列表的先后順序無關(guān)2013-09-09
C語言數(shù)據(jù)結(jié)構(gòu)之棧與隊(duì)列的相互實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何利用C語言相互實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的棧與隊(duì)列,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-07-07

