我正在做这么一个项目,其中有一个formview中的listctrl 要求当单击某一行的第一列就弹出一个对话框,当单击另一列时则弹出另一对话框,请问怎么才能判断出来我单击的是哪一列呢

解决方案 »

  1.   

    看看MSDN中的CListCtrl類成員,很簡單的!
      

  2.   

    void CTest6Dlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    DWORD dwPos = GetMessagePos();
    CPoint point( LOWORD(dwPos), HIWORD(dwPos) ); m_list.ScreenToClient(&point); 

    LVHITTESTINFO lvinfo;
        lvinfo.pt = point;
        lvinfo.flags = LVHT_ABOVE;
        
    m_list.SubItemHitTest(&lvinfo);
    //lvinfo.iItem为点中行
    //lvinfo.iSubItem为点中列 *pResult = 0;
    }
      

  3.   

    void CTest6Dlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    DWORD dwPos = GetMessagePos();
    CPoint point( LOWORD(dwPos), HIWORD(dwPos) ); m_list.ScreenToClient(&point); 

    LVHITTESTINFO lvinfo;
        lvinfo.pt = point;
        lvinfo.flags = LVHT_ABOVE;
        
    int nItem = m_list.SubItemHitTest(&lvinfo);
    if(nItem != -1)
    {
    CString strtemp;
    strtemp.Format("单击的是第%d行第%d列", lvinfo.iItem, lvinfo.iSubItem);
    AfxMessageBox(strtemp);
    }
    //lvinfo.iItem为点中行
    //lvinfo.iSubItem为点中列 *pResult = 0;
    }