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 获取点击列的更多相关文章

  1. C# 获取点击列的索引

    datagridview 怎么获取选中行的某一列的索引比如 下面是表学号 姓名 所在年级 1    张     高一 2    李     高二当我选择第二行的时候 我想取所在年级的列索引 这时候那个 ...

  2. c#里listview里如何获取点击的是哪一列

    很多时候c#里会用到listview,又会给它添加很多的列,可以设置点击列的标头实现按照这列的内容排序等功能,然而点击不同列排序的方法是不一样的,这时候就需要知道,我到底是点击了哪一列,比如点击名字列 ...

  3. MFC listcontrol 分列 添加行数据 点击列头排序

    适用于 对话框程序 1.在工具箱中拖出 ListControl,然后右键-属性,view-Report 让你的ListControl变成这幅模样! 2.添加ListControl控件的control类 ...

  4. jQuery获取Table某列的值

    在写此篇博文时,发现在以前曾写过<获取DataTable选择第一行某一列值>http://www.cnblogs.com/insus/p/5434062.html . 但是与此篇所说的完全 ...

  5. WPF 中获取DataGrid 模板列中控件的对像

    WPF 中获取DataGrid 模板列中控件的对像 #region 当前选定行的TextBox获得焦点 /// <summary> /// 当前选定行的TextBox获得焦点 /// &l ...

  6. datagridview 点击列标题排序

    开发winform中,平时经常用到数据列表,我们大多选用datagridview,但是此控件本身没有排序的功能.参阅网上资料.留下标记,以后备用. datagridview的数据显示一般是通过数据绑定 ...

  7. 解决无法获取 GridView 隐藏列值问题

    今天遇到了一个要获取GridView隐藏列值的问题,试了好几种方法,要么获取不到,要么获取到了类列的值也隐藏了,但在样式中这一列会多出一块,,但最后找到了一个功能实现而且实现了列完美隐藏的方法和大家分 ...

  8. [WPF]ListView点击列头排序功能实现

    [转]   [WPF]ListView点击列头排序功能实现 这是一个非常常见的功能,要求也很简单,在Column Header上显示一个小三角表示表示现在是在哪个Header上的正序还是倒序就可以了. ...

  9. 获取对固定列不重复的新DataTable

    获取对固定列不重复的新DataTable  ///<summary> /// 获取对固定列不重复的新DataTable /// </summary> ///<param ...

随机推荐

  1. MySQL-数据更新(UPDATE)

    MySQL-UPDATE语句 功能介绍:用于更新表中的现有数据.亦可用UPDATE语句来更改表中单个行,一组行或所有行的列值. MySQL-UPDATE语法: UPDATE [LOW_PRIORITY ...

  2. 2016/1/20 笔记 1, 包 引入 static 已经补充到类里 2,继承

    继承  1,关键字 extends       2,子类自动继承父类非私有的属性和方法 也叫成员变量 成员方法       3,super代表的是父类 调用父类的方法 默认在构造函数中生成      ...

  3. Message: SyntaxError: unterminated string literal

    #Message: SyntaxError: unterminated string literalmytxt = words.replace('\n','').replace('\r','') js ...

  4. 为什么要在css文件里定义 ul{margin:0;padding:0;}这个选择器?

    为什么要在css文件里定义 ul{margin:0;padding:0;}这个选择器? ul标签在FF中默认是有padding值的,而在IE中仅仅有margin默认有值.请看下面不同浏览中对paddi ...

  5. POJ 2590:Steps

    Steps Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7872   Accepted: 3612 Description ...

  6. 洛谷 P2678 [ NOIP 2015 ] 跳石头 —— 二分答案

    题目:https://www.luogu.org/problemnew/show/P2678 二分答案. 代码如下: #include<iostream> #include<cstd ...

  7. android View页面布局总结 最全总结(转)

    下面是我在工作中总结的内容,希望对大家有帮助. 一.布局 View的几种布局显示方式有下面几种:线性布局(LinearLayout).相对布局(RelativeLayout).表格布局(TableLa ...

  8. HashMap1

    一.Java并发基础 当一个对象或变量可以被多个线程共享的时候,就有可能使得程序的逻辑出现问题. 在一个对象中有一个变量i=0,有两个线程A,B都想对i加1,这个时候便有问题显现出来,关键就是对i加1 ...

  9. 清北考前刷题day4下午好

    /* 辗转相除,每次计算多出现了几个数. */ #include<iostream> #include<cstdio> #include<cstring> #inc ...

  10. P4727 [HNOI2009]图的同构记数

    传送门 如果我们把选出子图看成选出边,进而看成对边黑白染色,那么就是上一题的弱化版了,直接复制过来然后令\(m=2\)即可 不过直接交上去会T,于是加了几发大力优化 不知为何华丽的被小号抢了rank2 ...