CListCtrl多选的问题

CListCtrl设置可以选择多行的情况下,如果鼠标点击在第一列的位置,那么移动鼠标并没有出现虚线框,无法选择多行,请问应该设置什么属性才可以,或者要怎么处理?
...全文
281 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sandrer 2013-10-14
  • 打赏
  • 举报
回复
如果实时要求不高的话,我觉得你可以在虚线框停止拉动后(即用户放开鼠标后)再判断、选择 item 的
  • 打赏
  • 举报
回复
引用 14 楼 Sandrer 的回复:
每个 item 都有一个自己的坐标(CListCtrl::GetItemRect) 你把每个 item 的坐标取出来,然后与你画出来的虚线框矩形进行相交检测(CRect::IntersectRect) 如果有相交则更新 item 的状态(CListCtrl::SetItemState)
嗯,我已经弄出来,判断上下边界所在item就可以了,不过虚线框如果拉动太快,在比较差的设备上就会有点问题。
Sandrer 2013-10-14
  • 打赏
  • 举报
回复
每个 item 都有一个自己的坐标(CListCtrl::GetItemRect) 你把每个 item 的坐标取出来,然后与你画出来的虚线框矩形进行相交检测(CRect::IntersectRect) 如果有相交则更新 item 的状态(CListCtrl::SetItemState)
  • 打赏
  • 举报
回复
虚线框自己画出来了,就是无法激活Item
  • 打赏
  • 举报
回复
如果我要选前2行,后面的空白有啥用呢! 另外,由于设置了LVS_OWNERDRAWFIXED, 所以好像LVS_EX_FULLROWSELECT这个属性已经没有作用,自动加上的样子,我是点在第二列,结果也会使对应的行被选中的。
Sandrer 2013-10-11
  • 打赏
  • 举报
回复
其实我说的列表最下面会有几个像素空白,不是说一定的! 因为列表的高度是由用户自己决定,而你不捆绑 CImageList 或者自绘的话,行高度也是固定的! 但是列表的高度不一定是行高度的整数倍,所以一般都会在最下面留有一个小于行高的空白区域 除非你人品非常好,行的高度与数量相乘刚好等于列表客户区域的高度,那就只能用单列选择的方式,或者自己写一个继承 CListCtrl 的类,然后自己拦截鼠标消息咯
Sandrer 2013-10-11
  • 打赏
  • 举报
回复
就像以“详细信息”的方式查看文件夹一样,它们就不是整行选择
Sandrer 2013-10-11
  • 打赏
  • 举报
回复
我悄悄告诉你,其实 CListCtrl 就算项目占满了整个窗口,它也会在最下面留了几个像素的空白位置的! 别告诉微软的人,不然我怕他们改掉就不好了~ 如果你对行的选择要求不高的话,你也可以把 LVS_EX_FULLROWSELECT 这个样式去掉 那么你选择行的时候,只能从第一列开始选,点击除第一列之外的其它列,都视为空白区域滴
  • 打赏
  • 举报
回复
程序跑的地方并没有键盘。
yaozhiyong110 2013-10-11
  • 打赏
  • 举报
回复
像3楼说的可以 不过操作起来比较麻烦 你还是用ctrl和shift来选吧...
  • 打赏
  • 举报
回复
引用 3 楼 Sandrer 的回复:
需要在列表的空白地方点击并拖动才会有一个多选框出来的!
我就是想不需要在空白处点击也能出来,因为界面上并没有空白处。
Sandrer 2013-10-11
  • 打赏
  • 举报
回复
需要在列表的空白地方点击并拖动才会有一个多选框出来的!
  • 打赏
  • 举报
回复
鼠标左键按下后移动鼠标不是也可以做到多选吗?
引用 1 楼 yaozhiyong110 的回复:
不知道你什么意思 属性那里设置多选 你只要用ctrl或者shift就可以多选啊 你是要怎么多选?
yaozhiyong110 2013-10-11
  • 打赏
  • 举报
回复
不知道你什么意思 属性那里设置多选 你只要用ctrl或者shift就可以多选啊 你是要怎么多选?
  • 打赏
  • 举报
回复
如果自己处理鼠标消息,那么怎么判断鼠标画出来的虚线框中有哪些Item呢?
Sandrer 2013-10-11
  • 打赏
  • 举报
回复
你是自绘的列表?如果是这样的话你自己处理鼠标消息咯

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧