CListCtrl类的部分使用

本文详细介绍了如何通过响应ListControl的双击事件来获取指定行的数据,并将其显示在对话框中。包括事件响应、获取双击位置、确定选中项及其子下标、提取数据并更新对话框控件等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做双击List Control中某一行,并返回该行中的数据到指定对话框中,查了些资料也算实现了具体方法如下:

List Control 的双击事件的响应单击事件类似

首先为了响应 List Control 的双击事件就必须声明一个类继承自 CListCtrl 然后再其 NM_DBCLICK 事件中响应 .

       CPoint point;

 

       GetCursorPos(&point);

       ScreenToClient(&point);

 

       LVHITTESTINFO lvo;

 

       lvo.pt = point;  //point 保存鼠标双击时的位置

       lvo.flags = LVHT_ABOVE; 

       int nItem = this->SubItemHitTest(&lvo);  // 此时 lvo 中保存了所选中的项的下标(即所选中的行)和其子下标(所选中的列)

 

if (nItem != -1)    // 当所点位置没有有效的 item 项时,则返回 -1

       {

              CStringArray strarray;

 

              for (int i=0; i<GetHeaderCtrl()->GetItemCount() ; ++i) // 返回列数

              {

                     strarray.Add(GetItemText(lvo.iItem, i));

              }

             

              m_dlgMessage.m_edit1 = strarray.GetAt(0);  //m_dlgMessage 是所要弹出对话框,对话框所关联的 CEdit 控件

              m_dlgMessage.m_edit2 = strarray.GetAt(1);

              m_dlgMessage.m_edit3 = strarray.GetAt(2);

              m_dlgMessage.m_edit4 = strarray.GetAt(3);

              UpdateData(FALSE); // 将改变后的数据更新到对话框的响应控件去

              m_dlgMessage.DoModal();             

       }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值