问题是:
当我点击“灯泡”时,所选的多重音色将会丢失。这意味着当我使用API GetSelectedCount时,它将返回0.
我的调查:
当我点击“灯泡”时,将触发有关项目更改的事件。并且OnItemChanged事件将在OnClick事件之前触发(这就是为什么API GetSelectedCount将在事件OnClock中返回0)。 我想在事件OnItemChanged中缓存多个选定的项目,但是我失败了,因为每个项目都会触发一次OnItemChanged事件。
例如:如果我在列表视图中多选了3个项目,然后单击第3个项目的“灯泡”,则会触发事件OnItemChanged 3次,以通知3个项目未被选中。因此,在(点击灯泡)的OnClick事件中,我不知道在之前的操作中选择了哪些项目。
此外,在点击“灯泡”后,我仍然希望保留多个选择。
任何帮助将不胜感激?
ON_NOTIFY_REFLECT(LVN_ITEMCHANGED,OnItemChanged)
ON_NOTIFY_REFLECT_EX(NM_CLICK,OnClick)
void CListCtrl :: OnItemChanged(NMHDR * pNMHDR,LRESULT * pResult){......}
BOOL CListCtrl :: OnClick(NMHDR * pNMHDR,LRESULT * pResult){......}
答案 0 :(得分:1)
我知道这是一个老问题,但是我通过拦截OnLButtonDown消息解决了这个问题。
首先将ON_WM_LBUTTONDOWN()添加到您的消息映射声明中。 添加函数原型afx_msg void OnLButtonDown(UINT,CPoint);到您的列表控件类。
我的功能看起来像这样:
{
path: '**',
redirectTo: '',
pathMatch: 'full'
}