如何得到CListCtl控件中某一行中的值?????????
如何得到CListCtl控件中某一行中的值?????????
楼主andy_lau(天行键,君子当自强不息!)2002-07-20 09:37:59 在 VC/MFC / 基础类 提问 例如:现在控件中的值为]
姓名 年龄 班级
andy 41 9903
cyj 22 9903
.... .... .....
我想通过点击得到相应的值,例如:点击andy得到andy 的值,点击41则得到41
如何?????
有源程序的最好。。。。 问题点数:100、回复次数:7Top
1 楼wwwllg(野蛮人)回复于 2002-07-20 10:06:40 得分 50
for(int i=0;i<m_Dwdm_List.GetItemCount();i++)
{
if(m_Dwdm_List.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)
break;
}
int cx1= GetColumnWidth(0);
int cx2= GetColumnWidth(1);
int cx3= GetColumnWidth(2);
CRect rITem;
GetItemRect(i,&rITem,LVIR_BOUNDS );
CRect r1=rITem;
CRect r2=rITem;
CRect r3=rITem;
r1.right =r1.left + cx1;
r3.left = r3.right - cx3;
r2.left = r1.right ;
r2.right += cx2;
CPoint p;
GetItemPosition( i,&p);
CString text ="";
if(r1.PtInRect(p))
{
text = GetItemText(i,0);
}
if(r2.PtInRect(p))
{
text = GetItemText(i,1);
}
if(r3.PtInRect(p))
{
text = GetItemText(i,2);
}
Top
2 楼archoo(archoo)回复于 2002-07-20 10:15:33 得分 0
用GetItem()和SubItemHitTest()可以实现你的功能;Top
3 楼archoo(archoo)回复于 2002-07-20 10:29:24 得分 50
从CListCtrl派生一个类
class CMyListCtrl:public CListCtrl
{}
重载OnLButtonDown,
void CMyListCtrl:OnLButtonDown(UINT nFlags, CPoint point)
{
LVHITTESTINFO ht;
ht.pt = point;
int rval = ListView_SubItemHitTest( m_hWnd, &ht );
if(rval==-1) return;
CListCtrl::OnLButtonDown(nFlags, point);
CString str;
str = GetItemText( ht.iItem, ht.iSubItem );
//str 就是老兄要的东东 ~_~
}Top
4 楼xiaoweihua(老肖)回复于 2002-07-20 10:51:33 得分 0
查MSDN,肯定有例子的Top
5 楼ynli2002(阿男)回复于 2002-07-20 11:02:57 得分 0
试试用GetItemPosition( )和GetItemText()Top
6 楼clin2y(林子)回复于 2002-07-20 13:34:14 得分 0
用GetItemPosition( )和GetItemText()Top
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn
