hur.cn - 华软网

 热门搜索

关于ListCtrl获取当前点选项一个问题

  作者:未知    来源:网络    更新时间:2009/2/11
C++">
void CGridList::OnLButtonDown(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default

CListCtrl::OnLButtonDown(nFlags, point);
LVHITTESTINFO info;
info.pt=point;
info.flags=LVHT_ONITEMLABEL;
if(SubItemHitTest(&info)>=0)
{
row=info.iItem;
col=info.iSubItem;
ShowEdit();
}
}


为什么以上代码,SubItemHitTest的返回值总是-1呢?
---华软 网友回答---
CListCtrl::OnLButtonDown(nFlags, point);
    LVHITTESTINFO info;
    info.pt=point;
    info.flags=LVHT_ONITEMLABEL;
    SubItemHitTest(&info);
    if(info.flags & LVHT_ONITEMLABEL)
    {
        row=info.iItem;
        col=info.iSubItem;
        ShowEdit();
    }
}
---华软网友回复---
还是一样,进不到if段里去呀,
可能的原因有哪些呢?
---华软网友回复---
CListCtrl::OnLButtonDown(nFlags, point); 
    LVHITTESTINFO info; 
    info.pt=point; 
    SubItemHitTest(&info); 
    if(info.flags & LVHT_ONITEMLABEL) 
    { 
        row=info.iItem; 
        col=info.iSubItem; 
        ShowEdit(); 
    } 
}
我ListCtrl是报告形式的,而且在里面都已经ListCtrl有值的,没有值的地方不行,如果你真的要做的话,要给ListCtrl的每个ITEM添加空格吧,我这样做是没问题的
---华软网友回复---
点到item,subitem都可以反应。关联变量了?
---华软网友回复---
LButtonDown只对Item有效
对CListCtrl区域内有效,可以用HitTest
---华软网友回复---
C++">    LVHITTESTINFO info;
    info.pt=point;
    //info.flags=LVHT_ONITEMLABEL;  //去掉这句试试看,LVHITTESTINFO.flags是得到HitTest的信息
    if(SubItemHitTest(&info)>=0)
    {
        if(info.flags & LVHT_ONITEMLABEL) //点击在ITEM文本上
         {
           row=info.iItem;
           col=info.iSubItem;
           ShowEdit();
        }
    }

---华软网友回复---
点击项目的文字或图标,才可以响应。

Simplified Subitem Editing
http://www.codeguru.com/cpp/controls/listview/editingitemsandsubitem/article.php/c4175

---华软网友回复---
多谢指教,那如果要实现直接可以在ListCtrl控件上编辑,不管subItem上有没有文本之类的,该如何解决呢?
我另起一贴,静候指教。
---华软网友回复---
直接处理NM_CLICK事件 将lParam参数转换为 LPNMITEMACTIVATE 类型,里边就包含了相关的行和列信息

---华软网友回复---
引用 8 楼 hulooc 的回复:
多谢指教,那如果要实现直接可以在ListCtrl控件上编辑,不管subItem上有没有文本之类的,该如何解决呢? 
我另起一贴,静候指教。

只要有items,subItem是空白的照样能反应。
---华软网友回复---
又是一个忘记结贴的帖子了。。。。
---华软网友回复---
请问楼主这个问题是怎么解决的啊,我也遇到了同样的问题,请指教。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。