ListView_GetColumnWidth(HWND hwnd, int iCol); 得到每列的宽度,然后用鼠标位置判断落在哪个列里。
重载OnClickList函数,添加以下代码: NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; // TODO: Add your control notification handler code here CString szOut; szOut.Format(_T("%d-%d"),pNMListView->iItem,pNMListView->iSubItem); AfxMessageBox(szOut); *pResult = 0;
根据列宽和鼠标的位置,得出结果。 msdn中有一些关于得到选中信息的位置的函数。
重载CListCtrl控件对应的消息LVN_ITEMCHANGED void CHistoryList::OnItemchangedHistoryList(NMHDR* pNMHDR, LRESULT* pResult) { NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; // TODO: Add your control notification handler code here int nSelected=pNMListView->iItem; int nSubItem=pNMListView->iSubItem; if (nSelected>=0) { TRACE("选择了第%d条记录\n",nSelected); }
得到每列的宽度,然后用鼠标位置判断落在哪个列里。
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
CString szOut;
szOut.Format(_T("%d-%d"),pNMListView->iItem,pNMListView->iSubItem);
AfxMessageBox(szOut);
*pResult = 0;
msdn中有一些关于得到选中信息的位置的函数。
void CHistoryList::OnItemchangedHistoryList(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
int nSelected=pNMListView->iItem;
int nSubItem=pNMListView->iSubItem;
if (nSelected>=0)
{
TRACE("选择了第%d条记录\n",nSelected);
}
*pResult = 0;
}