一个Report风格的CListCtrl怎么样通过程序而不是通过鼠标键盘来使某一项处于选中状态
2010-10-31 13:55
323 查看
SetItemState(n, LVIS_SELECTED, LVIS_SELECTED);
---------------------------------------------------------------
//获得选中
int nItem = listctrl.GetNextItem (-1, LVNI_SELECTED);
//取消选中
listctrl.SetItemState(nItem,NULL,NULL);
//设置选中
listctrl.SetItemState(nItem+1,LVNI_SELECTED,LVNI_SELECTED);
---------------------------------------------------------------
SetItemState(n, LVIS_SELECTED, LVIS_SELECTED);
---------------------------------------------------------------
m_wndList.SetFocus();
m_wndList.SetItemState(2, LVIS_SELECTED, LVIS_SELECTED | LVIS_FOCUSED);
m_wndList.EnsureVisible(2, FALSE);
::SendMessage(m_wndList.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,
LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
---------------------------------------------------------------
以下的代码时再增加CListCtrl的行时,总是让最后一行是选中状态,看看对你有没有帮助
int nCount = m_list.GetItemCount();
if (nCount > 0)
{
m_list.EnsureVisible(nCount-1, FALSE);
m_list.SetItemState(nCount-1, LVIS_SELECTED, LVIS_SELECTED);
if ( nCount-1 > 0 )
{
m_list.SetItemState(nCount-1-1, 0, LVIS_SELECTED);
}
}
m_list.SetFocus();
---------------------------------------------------------------
SetItemState(n, LVIS_SELECTED, LVIS_SELECTED);
---------------------------------------------------------------
//获得选中
int nItem = listctrl.GetNextItem (-1, LVNI_SELECTED);
//取消选中
listctrl.SetItemState(nItem,NULL,NULL);
//设置选中
listctrl.SetItemState(nItem+1,LVNI_SELECTED,LVNI_SELECTED);
---------------------------------------------------------------
SetItemState(n, LVIS_SELECTED, LVIS_SELECTED);
---------------------------------------------------------------
m_wndList.SetFocus();
m_wndList.SetItemState(2, LVIS_SELECTED, LVIS_SELECTED | LVIS_FOCUSED);
m_wndList.EnsureVisible(2, FALSE);
::SendMessage(m_wndList.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,
LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
---------------------------------------------------------------
以下的代码时再增加CListCtrl的行时,总是让最后一行是选中状态,看看对你有没有帮助
int nCount = m_list.GetItemCount();
if (nCount > 0)
{
m_list.EnsureVisible(nCount-1, FALSE);
m_list.SetItemState(nCount-1, LVIS_SELECTED, LVIS_SELECTED);
if ( nCount-1 > 0 )
{
m_list.SetItemState(nCount-1-1, 0, LVIS_SELECTED);
}
}
m_list.SetFocus();
---------------------------------------------------------------
SetItemState(n, LVIS_SELECTED, LVIS_SELECTED);
相关文章推荐
- 编写一个组合鼠标事件和键盘事件的程序,该程序模拟一个电子白板,用户用鼠标在白板上画画,并通过键盘在上面写字
- 鼠标事件适配器、多态(通过一个画点的程序介绍)
- 如何让ListCtrl的CheckBox只有一个处于选中状态
- 通过键盘输入100 以内正整数的加、减运算式,请编写一个程序输出运算结果字符串
- 通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
- 一个很简短的屏蔽(不是卸载)低级键盘钩子的程序及解释
- (华为机考题)通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
- Windows中如何获取键盘和鼠标处于空闲状态的时间
- 【转】Windows中如何获取键盘和鼠标处于空闲状态的时间
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函
- CListCtrl 实现 当点击界面的其他地方时,列表中的选中项仍处于选中状态
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
- 发布这几天学习Hook搞出来的一个挺好玩的统计鼠标移动距离和键盘敲击次数的小程序
- 练习2-1 编写一个程序一确定分别由signed及unsigned限定的char,short,int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现。通过直接计算来确定浮点类型的取值范围是一项难度很大的任务。
- c# 如何获取键盘和鼠标处于空闲状态的时间
- Windows中如何获取键盘和鼠标处于空闲状态的时间
- c# 如何获取键盘和鼠标处于空闲状态的时间
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉
- 华为:通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。