我影射了NM_HOVER消息,但是不知道为什么,我的dialog并没有收到消息回调。那么我如何知道当前鼠标在list ctrl上的哪一项?当鼠标悬停的项改变时,如何通知对话框,悬停的项改变了????

解决方案 »

  1.   

    LVS_EX_ONECLICKACTIVATE 
        Version 4.70. The list-view control sends an LVN_ITEMACTIVATE notification message to the parent window when the user clicks an item. This style also enables hot tracking in the list-view control. Hot tracking means that when the cursor moves over an item, it is highlighted but not selected. See the Extended List-View Styles Res section for a discussion of item activation.
      

  2.   

    不是CLICK,没有CLICK,就是鼠标移动到上面。
    我就想知道移动到那个上面了,然后希望listctrl有一个回调给dialog
      

  3.   

    小三,不行啊,我使了一下,没有反应!!
    没断道 ON_NOTIFY(LVN_ITEMACTIVATE, IDC_LIST_RIGHT, OnLvnItemActivateListRight)void CSearchWndDlg::OnLvnItemActivateListRight(NMHDR *pNMHDR, LRESULT *pResult)
    {
    LPNMITEMACTIVATE pNMIA = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
    // TODO: 在此添加控件通知处理程序代码
    *pResult = 0;
    }
      

  4.   

    晕,hittest的话,必须要在mousemove的时候,不断地判断。
    超级麻烦。又没有好办法啊?NM_HOVER为什么不管用?
      

  5.   

    CRect rect;
    m_TabDefListCtrl.GetWindowRect(rect);
    CPoint point;
    GetCursorPos(&point);
    point.x=point.x-rect.left;
    point.y=point.y-rect.top; LVHITTESTINFO LVHTestInfo;
    LVHTestInfo.pt  = point;
    m_TabDefListCtrl.HitTest(&LVHTestInfo);
    m_nRow=LVHTestInfo.iItem;
    m_TabDefListCtrl.SubItemHitTest(&LVHTestInfo);
    m_nCol=LVHTestInfo.iSubItem;