当前位置: 代码迷 >> 综合 >> MFC 禁止拖动 ListCtrl 表头,获取选中行号
  详细解决方案

MFC 禁止拖动 ListCtrl 表头,获取选中行号

热度:43   发布时间:2024-01-29 15:16:25.0

禁止拖动 重载 OnNotify

BOOL CMainDialog::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{// TODO: 在此添加专用代码和/或调用基类//屏蔽两个消息通知码,使得禁止拖动List表头   NMHEADER* pNMHeader = (NMHEADER*)lParam;if (((pNMHeader->hdr.code == HDN_BEGINTRACKW) |(pNMHeader->hdr.code == HDN_DIVIDERDBLCLICKW))){*pResult = TRUE;return TRUE;}return CDialogEx::OnNotify(wParam, lParam, pResult);
}

获取选中行

int nIdx = m_list.GetSelectionMark();

获取选中行号,列号, 添加鼠标单击消息

void CMainDialog::OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult)
{LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);// TODO: 在此添加控件通知处理程序代码NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;if (pNMListView->iItem != -1){CString strtemp;strtemp.Format(_T("单击的是第%d行第%d列"),pNMListView->iItem, pNMListView->iSubItem);AfxMessageBox(strtemp);}*pResult = 0;
}