+ -
当前位置:首页 → 问答吧 → 在clistctrl里面怎么样实现不按shift或者ctrl进行多选??

在clistctrl里面怎么样实现不按shift或者ctrl进行多选??

时间:2011-12-06

来源:互联网

在clistctrl里面怎么样实现不按shift或者ctrl进行多选??麻烦大家指导

作者: xiaopan   发布时间: 2011-12-06

响应单击消息,把当前点击的行设置为选中状态

作者: mayudong1   发布时间: 2011-12-06

用鼠标拖曳也不能多选吗?

作者: VisualEleven   发布时间: 2011-12-06

1)选择多选属性(single seletion=false),然后根据你想怎么样多选就在那样的步骤中添加相应的代码.
or
2)自绘

作者: yuucyf   发布时间: 2011-12-06

if (lpDrawItemStruct->itemID % 2 ==0)

//pDC->SetTextColor(RGB(0,0,0));
pDC->FillRect(&lpDrawItemStruct->rcItem, &CBrush(RGB(0,128,128))); //偶数行背景颜色

else 

//pDC->SetTextColor(RGB(0,0,0)); //奇数行字体颜色
pDC->FillRect(&lpDrawItemStruct->rcItem, &CBrush(RGB(128,128,128))); //行背景颜色


  POSITION pos = GetFirstSelectedItemPosition();
while(pos)
{
int index = GetNextSelectedItem(pos);
if (lpDrawItemStruct->itemID == index)
{
pDC->FillSolidRect(&lpDrawItemStruct->rcItem, GetSysColor(COLOR_HIGHLIGHT)) ; 
pDC->SetTextColor(GetSysColor(COLOR_HIGHLIGHTTEXT)) ;
}
   
}

作者: xiaopan   发布时间: 2011-12-06

我重写了drawitem,这个是奇数,偶数的变化和得到选择的行,但是没有反应,只是变化当前点击的行,之前点击的行仍旧变回去了

作者: xiaopan   发布时间: 2011-12-06

单击函数:
  SetItemState(iItem, LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);

我调试了一下,程序先进入了drawitem,然后才响应OnNMClick,各位帮忙看看有没有好办法

作者: xiaopan   发布时间: 2011-12-06