MFC中的 CListCtrl 的訊息事件

2022-04-10 01:01:40 字數 1776 閱讀 2358

lvn_begindrag 滑鼠左鍵正在被觸發以便進行拖放操作(當滑鼠左鍵開始拖拽列表檢視控制項中的專案時產生)

lvn_beginrdrag 滑鼠右鍵正在被觸發以便進行拖放操作(當滑鼠右鍵開始拖拽列表檢視控制項中的專案時產生)

lvn_beginlabeledit 開始編輯項的文字

lvn_columnclick 單擊列(當滑鼠單擊列表檢視控制項列標題時產生)

nm_click 當滑鼠單擊列表檢視控制項時產生

lvn_deleteallitems 刪除所有項

lvn_deleteitem 刪除某個項

nm_dblclk 當滑鼠雙擊列表檢視控制項時產生

lvn_endlabeledit 結束對項文字的編輯

lvn_getdispinfo 請求需要顯示的資訊

lvn_getinfotip 請求顯示在工具提示視窗內的附加的文字資訊

lvn_hottrack 滑鼠滑過某個項

lvn_insertitem 當向列表檢視控制項插入專案時產生

lvn_itemactivate 啟用某個項

lvn_itemchanged 某個項已經發生變化

lvn_itemchanging 某個專案正在發生變化

nm_killfocus 當視表列圖控制項失去焦點時產生

lvn_keydown 某個鍵被按下

lvn_marqueebegin 開始某個邊框選擇

nm_outofmemory 當記憶體溢位時產生

lvn_odcachehint 虛擬列表控制項的顯示區域的內容發生了變化

lvn_odstatechanged 虛擬列表的控制項的某個項或某個範圍內的項已經發生變化

lvn_odfinditem 需要擁有者查詢乙個特定的**項

nm_rclick 當滑鼠右鍵單擊列表檢視控制項時產生

nm_rdblclk 當滑鼠右鍵雙擊列表檢視控制項時產生

nm_setfocus 當列表檢視控制項獲得焦點時產生

lvn_setdispinfo 父視窗必須更新控制項為項所維護的資訊

註解:

hdn:header notify

lvn:listview control notify

nm:notify message

tvn:treeview control notify

lvn_itemchanged訊息的處理

訊息處理函式:

void c***dlg::onitemchangedlist(nmhdr* pnmhdr, lresult* presult) }}

*presult = 0;

}訊息處理函式中的兩個if條件句一定要有,否則可能出現多次進入處理內容的問題。lvn_itemchanged(onitemchanged)通知響應多次的問題

滑鼠雙擊列表項事件的處理

響應nm_dblclk訊息:

void cdissalarydlg::ondblclklist(nmhdr* pnmhdr, lresult* presult)

{nm_listview *pnmlistview=(nm_listview *)pnmhdr;

int nitem=pnmlistview->iitem;

if(nitem>=0 && nitem

訊息處理函式中的if語句很重要,用於判斷雙擊位置是否在有資料的列表項上面。因為nm_dblclk訊息是clistctrl控制項(整體)訊息,只要是在clistctrl控制項範圍之內執行此事件就會產生該訊息,而不一定要在有資料的列表項上面。

MFC中的列表控制項CListCtrl

在使用clistctrl控制項report顯示風格時,需要設定列標題資訊,否則不能向控制項中新增資料資訊,編輯列標題需要 使用insertcolumn方法 m listctrl.insertcolumn 0,姓名 lvcfmt left,150,0 m listctrl.insertcolumn 1...

MFC中的CListCtrl控制項新增行

m list.attach getdlgitem this m hwnd,idc list1 m list.insertcolumn 0,t 工號 0,120 m list.insertcolumn 1,t 姓名 0,120 m list.insertitem 0,t 12901 插入第0行,且0列...

MFC中的CListCtrl網格控制項新增行

1 2 3 4 5 6 7 8 9 m list.attach getdlgitem this m hwnd,idc list1 手動關聯變數 m list.insertcolumn 0,t 工號 0,120 m list.insertcolumn 1,t 姓名 0,120 m list.inser...