在CListCtrl中item的焦点能被获取到吗

在CListCtrl控件中,当用鼠标点击一行item,焦点就会到这一行,然后上面有个按钮,用来响应某个被选中焦点item的删除操作,我想请问的是,这个焦点该怎么被获取啊,... 在CListCtrl控件中 ,当用鼠标点击一行item,焦点就会到这一行,然后上面有个按钮,用来响应某个被选中焦点item的删除操作,我想请问的是,这个焦点该怎么被获取啊,item有控件ID吗?焦点要精确到CListCtrl的行。 展开
 我来答
bhtzu
2015-04-21 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4184万
展开全部

item肯定是没有“控件ID”的。

不过当选中CListCtrl的一行后,可以获取选中的行号并根据行号操作,这个应该可以满足你的需求。

POSITION pos = m_list.GetFirstSelectedItemPosition();
      if (pos == NULL)
           TRACE0("No items were selected!\n");
      else
      {
           while (pos)
           {
                int nItem = m_list.GetNextSelectedItem(pos);
                TRACE1("Item %d was selected!\n", nItem);
                // you could do your own processing on nItem here
           }
      }

也可以响应行鼠标点击消息:

添加listctrl控件的NM_CLICK消息相应函数
      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);
           }
          */
   
          // 方法二:
          /*
           NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
           if(pNMListView->iItem != -1)
           {
                CString strtemp;
                strtemp.Format("单击的是第%d行第%d列",
                                pNMListView->iItem, pNMListView->iSubItem);
                AfxMessageBox(strtemp);
           }
          */
           *pResult = 0;
      }
追问
那该怎么实现 按着shift 或者ctrl键  然后批量获取选中item呢,非常感谢上个问题
追答
CListCtrl控件的属性里面,就有MultiSelect,选中即可。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式