码迷,mamicode.com
首页 > 其他好文 > 详细

CLISTCTRL 获取点击列

时间:2017-07-21 14:17:28      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:cst   getc   函数   listctrl   选中   ring   使用   list   epo   

CListCtrl中的HitTest、SubItemHitTest的用法  


2HitTest:得到当前鼠标位置的Item


其实关键是要有ScreenToClient这个函数的使用,我先前没有用这个函数,HitTest老是返回-1,搞得我都头大了。不过这个不能用于SubItem,那应该要用SubItemHitTest


LVHITTESTINFO ht ;


GetCursorPos(&(ht.pt)) ;


m_friendList.ScreenToClient(&ht.pt) ;


m_friendList.HitTest(&ht) ;


 if(ht.iItem == -1) //检查是否有item选中


      return  ;


SubItemHitTest:


void   CTest6Dlg::OnClickList1(NMHDR*   pNMHDR,   LRESULT*   pResult)   

/****************************************/ 
/*       确定单击的listctrl的行列号   方法1       */ 
/****************************************/ 


/* 
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); 

*pResult   =   0; 
}

CLISTCTRL 获取点击列

标签:cst   getc   函数   listctrl   选中   ring   使用   list   epo   

原文地址:http://www.cnblogs.com/xzh1993/p/7217205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!