CListCtrl选中某行
原文链接: http://blog.csdn.net/wxq1987525/article/details/7461461
1、设置CListCtrl选中行
m_list.SetItemState(
nIndex,
LVIS_FOCUSED | LVIS_SELECTED,
LVIS_FOCUSED | LVIS_SELECTED);
注意:这句代码只是让指定行高亮显示,如果使用后再用GetSelectionMark函数来得到选中行,结果往往是错误的。比如,先用鼠标点击选中第5行,调用GetSelectionMark函数得到的是4(第5行),再调用SetItemState函数选中第2行,然后调用GetSelectionMark函数得到的还是4(第5行),所以,需要在设置选中行高亮显示时,一般与SetSelectionMark函数连用:
m_list.SetItemState(
nIndex,
LVIS_FOCUSED | LVIS_SELECTED,
LVIS_FOCUSED | LVIS_SELECTED); //选中行
m_list.SetSelectionMark(nIndexs);
2、取消CListCtrl选中行
m_list.SetItemState(nIndex, 0, LVIS_SELECTED);
m_list.SetSelectionMark(-1);
3、CListCtrl选中行改变
项目中用到ClistCtrl,当选中行改变时,另外一个控件的详细信息也随之改变,最开始使用鼠标点击事件:
void CMyDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
{
TODO: Add your control notification handler code here
int nIndex = m_list.GetSelectionMark();
if (nIndex >=0)
{
//要进行的操作
}
}
后来发现,用鼠标点击并不完善,因为如果用键盘来切换选中行的话,另一控件的信息就改变不了,于是改用响应LVN_ITEMCHANGED消息,发现改变选中行时会有好几个LVN_ITEMCHANGED消息,加入判断即可:
void CMyDlg::OnItemchangedList(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
if(pNMListView->uChanged == LVIF_STATE)
{
if(pNMListView->uNewState)
{
int nIndex = pNMListView->iItem;
//要进行的操作
}
}
*pResult = 0;
}
CListCtrl选中某行的更多相关文章
- WinForm DataGridView根据选中的行多删
private void btndel_Click(object sender, EventArgs e) { int count = 0; ...
- GRID用法(取行、列值;定位选中某行等等)
Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值 cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号 cxGrid1DB ...
- Silverlight获取DataGrid选中的行数据
注意触发的事件为:CurrentCellChanged后台代码: /// <summary> /// 获取datagrid当前选中的单元格数据 /// 如果绑定的数据源为实体的话默认选中的 ...
- ALV判断修改后是否有不合法数据,有则选中错误行,高亮度显示。
alv数据表维护表时错误行需要高亮度显示 gt_index_rows TYPE lvc_t_row,"用以存放要选择行的内表 gs_index_rows TYPE lvc_s_row.&qu ...
- 【技巧】easyUI的datagrid,如何在翻页以后仍能记录被选中的行
easyUI的datagrid在复选框多选时,如何在翻页以后仍能记录被选中的行: 注意datagrid中需要配置idField属性,一般为数据的主键
- vim选中多行缩进(python多行缩进)与删除多行前面的空格
最近用vim写python,有时候会在一段代码前面套一个循环的操作,这个时候将这一段代码整体向后平移四个空格,来满足vim缩进的要求,如何做到这一点呢? 1. ESC之后,ctrl+v进入多行行首选中 ...
- 在Notepad++中快捷选中多行
原文: 在Notepad++中快捷选中多行 Notepad++是Windows下一款很好用的文本编辑器. 如果需要在一个文档中选中指定的若干行,常见的办法是鼠标按住拖动.这样对于少数几行的选取还可以, ...
- jQuery easyUI的datagrid,如何在翻页以后仍能记录被选中的行
1.先给出问题解决后的代码 <%@ page language="java" import="java.util.*" pageEncoding=&quo ...
- FineUI 选中多行获取行ID
http://www.fineui.com/bbs/forum.php?mod=viewthread&tid=2506&page=1 /// <summary> ...
随机推荐
- iOS 8 swift 键盘不出来 ios 8 uitextfield keyboard not appearing
ios 8 uitextfield keyboard not appearing //发现在iphone 6 and iPhone plus 上面键盘不出来.后来查了下原来要在模拟器里设置下 var ...
- iOS 根据圆心的坐标点、半径、当前手势所在的坐标点,计算出圆的运动轨迹坐标
/** * 根据圆心的坐标点.半径.当前手势所在的坐标点,计算出圆的运动轨迹坐标 * @param radius 圆心半径 * @param centerCircle 圆心的坐标点 * @param ...
- ZH奶酪:CSS中限制span显示字数
span中的文字是取出于数据库的,不确定文字的个数,由于排版的原因只想让span不超过6个字,如果超过只显示六个,当鼠标悬浮上去的时候tip显示全部内容 Step1.在span中添加title < ...
- 在Linux系统中增加和删除用户
linux创建账户并自动生成主目录和主目录下的文件 在Linux系统中增加和删除用户 Linux添加用户(user)到用户组(group) usermod -a -G groupA user linu ...
- Android 如何预置APK M
前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net ...
- Mahout 协同过滤 itemBase RecommenderJob源码分析
来自:http://blog.csdn.net/heyutao007/article/details/8612906 Mahout支持2种 M/R 的jobs实现itemBase的协同过滤 I.Ite ...
- Linux多线程同步之相互排斥量和条件变量
1. 什么是相互排斥量 相互排斥量从本质上说是一把锁,在訪问共享资源前对相互排斥量进行加锁,在訪问完毕后释放相互排斥量上的锁. 对相互排斥量进行加锁以后,不论什么其它试图再次对相互排斥量加锁的线程将会 ...
- top命令参数
参数说明 d 指定每两次屏幕信息刷新之间的时间间隔.当然用户可以使用s交互命令来改变之. p 通过指定监控进程ID来仅仅监控某个进程的状态. q该选项将使top没有任何延迟的进行刷新.如果调用程序有超 ...
- Flash: Event.PASTE Flash获取剪贴板内容 触发paste事件 how to get paste event
actionscript把文字存放到剪贴板这个就非常简单了,一般网站做点击复制基本都是这么做的. 但是,基本没有人做flash粘贴内容.今天本来想尝试一下,通过flash实现网页编辑器粘贴图片,但貌似 ...
- Jquery 获取对象的几种方式(转载)
1.先讲讲JQuery的概念 JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队.其实 JQuery是一个JavaScript的类 ...