高手们:
    请问:
      !.当鼠标双击ListCtrl列表框的一项时响应的是什么消息?
      2 .当鼠标双击ListCtrl列表框的一项时如何获取该项的内容?    急求答案!!
    谢谢。

解决方案 »

  1.   

    1、WM_COMMAND,HIWORD(wParam)的值为LBN_DBLCLK
    2、给列表框发送LB_GETCURSEL消息得到选中的项。
      

  2.   

    1、LBN_DBLCLK
    2、选中之后应有选中项,之后判断那个选中的位置求索引,通过索引求得
      

  3.   

    我要的不是ListBox的列表框,是ListView的列表框,控件名称是ListCtrl,里面没有LBN_DBCLK这个消息的
      

  4.   

    ListView的话是WM_NOTIFY,
    LPNMHDR hdr = (LPNMHDR)lParam;
    hdr->code == NM_DBLCLK时是双击。
    获取内容用ListView_GetItem开头的宏或发送LVM_GETITEMTEXT等消息
      

  5.   

    现在已经响应了NM_DBCLK的消息,并在里面向ListView控件发送LVM_GETITEM的消息:
    {
    ...
    LPLVITEM pGetResult=new LVITEM;
      ::SendMessage((GetDlgItem(IDC_ListView)->m_hWnd,LVM_GETITEM,0,pGetResult);
    ...
    delete pGetResult;
    ...
    }
    按照MSDN的说法,如果::SendMessage返回True就是成功了,但是为什么我无论如何双击这个控件,这个函数总是返回False,请问为什么??
      

  6.   

    你看看LVM_GETITEM消息说明的注释部分,你的LVITEM成员都没有初始化。
      

  7.   

    LPLVITEM pGetResult=new LVITEM;pGetResult->mask = LVIF_TEXT;//看MSDN,你要得到什么信息就添什么值
    pGetResult->iItem = 选中项序号;
    pGetResult->iSubItem = 选中项的列序号,  ::SendMessage((GetDlgItem(IDC_ListView)->m_hWnd,LVM_GETITEM,0,pGetResult);
    ...
    delete pGetResult;
      

  8.   

    就用ListCtrl自带的O
    ON_NOTIFY(NM_CLICK, IDC_LIST, OnNMClickList)
    ON_NOTIFY(NM_DBLCLK, IDC_LIST, OnNMDblclkList)
    IDC_LIST是List的ID
      

  9.   

    ListCtrl Item 双击时向Parent发送Item Active通知,应该在那里处理,同时可以得到该项的内容。
      

  10.   

    现在我终于知道如何做了,其实不用那么烦的,MFC已经为我们打包好了。这就是代码:
    void CNeighbourInfoDlg::OnListDBClick(NMHDR *pNMHDR, LRESULT *pResult)
    {
    // TODO: 在此添加控件通知处理程序代码
    NM_LISTVIEW *pGetResult=(NM_LISTVIEW*)pNMHDR;
    if(pGetResult->iItem <0)
    {
            AfxMessageBox("不能获得项中内容!");  
    *pResult = 0;
    return;
    }
    char Str[MAXPATH];
    m_ListView.GetItemText (pGetResult->iItem ,pGetResult->iSubItem ,Str,MAXPATH-1);
    .....
    *pResult=0;
    }
      

  11.   

    本身就是嘛,还是那个view  扯淡阿