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...