点击CListBox选中行外取消选中高亮状态
来源:互联网 发布:淘宝直通车魔镜下载 编辑:程序博客网 时间:2024/05/17 03:46
今天实现了一个关于CListBox取消高亮选中状态的功能:
点击任意内容行,内容行高亮显示,点击内容行外位置,取消当前高亮,
CRect rect; CPoint point; int nSelectIndex = 0;
GetCursorPos(&point);//获取当前鼠标位置,相对屏幕坐标 ::MapWindowPoints(NULL,m_ListBox.m_hWnd,&point,1);//将屏幕坐标转换为控件中坐标 //单行选中模式 /*nSelectIndex = m_ListBox.GetCurSel();//获取当前选中行 if (nSelectIndex != LB_ERR) { m_ListBox.GetItemRect(nSelectIndex,&rect);//获取当前选中行矩形 if (!rect.PtInRect(point))//判断是否在选中行坐标中 { m_ListBox.SetCurSel(-1);//如果不在,设置当前选中行为-1 } }*/
// 多行选中模式 int nCount = m_ListBox.GetSelCount(); CArray<int,int> aryListBoxSel;
if (nCount == LB_ERR || nCount < 1) { return ; } aryListBoxSel.SetSize(nCount); m_ListBox.GetSelItems(nCount, aryListBoxSel.GetData()); for (int i = 0;i< nCount; i++) { m_ListBox.GetItemRect(aryListBoxSel[i],&rect); if (rect.PtInRect(point)) { return ; } }
for (int i = 0;i< nCount; i++) { m_ListBox.SetSel(aryListBoxSel[i],FALSE); }
上面代码很清楚了,就不多写了,资源中有对应的资源,可以下载查看运行效果!
资源连接:http://download.csdn.net/detail/daiafei/4457339
- 点击CListBox选中行外取消选中高亮状态
- CListBox取消高亮选中状态的功能:
- radio:未选中状态基础上点击一次,选中;选中状态基础上点击一次,取消选中
- tableView取消选中行的选中状态
- tableView取消cell的选中状态和取消高亮状态
- iOS UIButton选中状态下点击高亮
- 选中某一item,高亮显示(CListCtrl CTreeCtrl CListBox)
- UItableview 取消选中状态
- tableview 取消选中状态
- tableView 取消选中状态
- zTree取消选中状态
- Jquery实现,点击选中,点击取消选中
- radio点击选中,再次点击取消选中
- 点击Gridview行,选中/取消选中,当前行中的Checkbox
- easyui datagrid行选中情况下,再次点击取消选中。
- easyui取消单击行选中状态
- 点击一次选中,点击二次取消(或第二个选中),并退出时保存状态
- Cell点击后返回上页 取消选中状态
- C++中避免内存泄露常见的解决方案
- Windows平台下主要的内存管理途径:
- linux进程复习笔记
- Facebook公布2012年Q2财务数据
- PCL安装与第一个程序的运行
- 点击CListBox选中行外取消选中高亮状态
- JAVA中获取工程路径的方法
- Javascript输入汉字自动转换为首字母的拼音码
- Java经典算法集——如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
- Java基础增加 一
- andoid ICS 4.0.3 去掉红框
- Android 4.0 编译全程
- 退休后能拿多少
- PHP相关系列 - Redis导数据的PHP脚本