MFC CListCtrl获取列数出错了,怎么回事?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC CListCtrl获取列数出错了,怎么回事?相关的知识,希望对你有一定的参考价值。
//图中的flag变量是我自己的变量 可以无视掉。
怎么回事啊 m_list里面是有东西的 就是文件名
for (int i=0;i<m_LoadFileD->m_list.GetHeaderCtrl()->GetItemCount()/*在这里报错*/;i++)
//m_LoadFileD是存放那个CListCtrl的窗体
char Tempchar[1024]=0;
m_LoadFileD->m_list.GetItemText(i,0,Tempchar,1024);
if (strcmp(Tempchar,"asd.exe")==0)
m_LoadFileD->m_list.DeleteItem(i);//如果找到就删除 不是全部删除
break;//跳出
按照你下面的功能来看你需要获取行数 参考技术A 不用m_LoadFileD->吧?
在MFC的CListCtrl中怎么实现当鼠标在一定的列双击时执行特定的函数?
有一个CListCtrl控件:
CListCtrl pListCtrl;
在该控件里有两列,分别是“学号”、“姓名”。现在我想要在它下面的记录(行)中使用鼠标双击,如果我鼠标双击时的列位置在“姓名”下,就对我选中的本条记录(行)的名字进行操作(函数fun1);如果我鼠标双击时的列位置在“学号”下,就对我获得的本条记录(行)的学号传递给另外的类(函数fun2)。请问要怎么做呢?(最好有示例代码)
急用,高分悬赏。那位大侠知道的可以在“其他编程语言”区回答我的问题,因为第1次问的时候没注意,选错了分类,所以在这边再重复问一下,希望大侠们不吝指教!
如题:你应该是知道怎么取得当前双击的行了是吧,那我就不用再说了
现在需要取得列
操作列头的方法你应该知道吧,我就当你是知道,不知道去网上查吧
下面说下方法
取得列头的指针后,来算出每列的宽度。然后判断鼠标的的坐标,就可以得出鼠标所在的列了,然后根据所在行来确定具体哪一个格...
我以前做过。。不过时间太长了,总之思路是这样的,代码部分你根据我的思路做就行了,不会的就自己查查MSDN吧,思路有了就好办了.
虽然麻烦点不如你做成自己的类(写个子类)以后就方便了 参考技术A 添加右键响应
测试鼠标所在区域是否在某列之下,只有两列应该行容易判断的
http://hi.baidu.com/maxlcl/blog/item/7e36d22a6e358298033bf644.html
http://hi.baidu.com/maxlcl/blog/item/8e22b000057efc84e950cdc8.html
参考资料:上面的网址是《Win32控件的通知消息》
参考技术B 选中控件,右键添加消息,具体名字我忘了,大意是ON DOUBLE CLICK ,然后VS会替你安排一切的。 参考技术C 设置一个隐藏的Editbox,当双击时让该EditBox显示在双击项的上方。。。其他方法偶也不晓得了以上是关于MFC CListCtrl获取列数出错了,怎么回事?的主要内容,如果未能解决你的问题,请参考以下文章
MFC——获取文件夹下的所有文件并显示在CListCtrl上