现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

处理鼠标右键在CListCtrl控件的表头CHeaderCtrl上的响应

2012-09-08 21:32 工业·编程 ⁄ 共 753字 ⁄ 字号 暂无评论

// 在CListCtrl控件的父窗口上添加OnNotify虚函数

BOOL CXXXDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
    // TODO: Add your specialized code here and/or call the base class
    if ((((LPNMHDR)lParam)->code == NM_RCLICK))
    {
        CPoint pt, pt2;
        GetCursorPos(&pt);
        pt2 = pt;
        m_list.ScreenToClient(&pt);
        CWnd* pWnd = m_list.ChildWindowFromPoint(pt);
        CHeaderCtrl* pHeader = m_list.GetHeaderCtrl();
        if(pWnd && (pWnd->GetSafeHwnd() == pHeader->GetSafeHwnd()))
        {
            HDHITTESTINFO info = {0};
            info.pt = pt;
            pHeader->SendMessage(HDM_HITTEST, 0, (LPARAM)&info);
            CString str;
            str.Format(_T("Column: %d clicked!"), info.iItem);
            AfxMessageBox(str);
        }
    }
    return CDialog::OnNotify(wParam, lParam, pResult);
}

给我留言

留言无头像?