怎样知道点击了clistctrl的哪行哪列,该如何解决
怎样知道点击了clistctrl的哪行哪列
CListCtrl::SubItemHitTest
LVHITTESTINFO lvhti;
lvhti.pt = point;(point 为坐标)
int iItem = CListCtrl::SubItemHitTest(&lvhti);
点击第一列的文字部分 得到的是正确的行数。
点击第一列的非文字部分,却得不到正确行数,得到-1.
请问是为什么啊?
还有 我有更好的方法知道 行和列吗
------解决方案--------------------
CListCtrl::SubItemHitTest
LVHITTESTINFO lvhti;
lvhti.pt = point;(point 为坐标)
int iItem = CListCtrl::SubItemHitTest(&lvhti);
点击第一列的文字部分 得到的是正确的行数。
点击第一列的非文字部分,却得不到正确行数,得到-1.
请问是为什么啊?
还有 我有更好的方法知道 行和列吗
------解决方案--------------------
- C/C++ code
// NM_CLICK void CXXXXDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here CPoint pt; GetCursorPos(&pt); m_list.ScreenToClient(&pt); LVHITTESTINFO lvhti; lvhti.pt = pt; m_list.SubItemHitTest(&lvhti); if(lvhti.flags & LVHT_ONITEMLABEL) { CString str; str.Format(_T("item: %d, subitem: %d"), lvhti.iItem, lvhti.iSubItem); AfxMessageBox(str); } *pResult = 0; }