Clistctrl选择检测

时间:2012-04-30 18:18:45

标签: c++ visual-c++ mfc wtl clistctrl

我一直在使用列表视图,并发现了这篇文章:How to detect a CListCtrl selection change?

然而,那里使用的代码有一个主流,它不适用于多个选择(如该线程中所指出的)。所以我的问题是如何使代码与多选(例如,使用shift或ctrl选择)?

1 个答案:

答案 0 :(得分:0)

我编写了一个方便的函数来查看你的OnItemChanged通知是否是由于选择更改引起的:

BOOL IsItemSelChanged(NMLISTVIEW* pNMListView)
{
    // call this from your OnItemchangedMyListCtrl function in your dialog class

    if(!(pNMListView->uChanged & LVIF_STATE))
    {
        return(FALSE);
    }

    if((pNMListView->uOldState & LVIS_SELECTED) == (pNMListView->uNewState & LVIS_SELECTED))
    {
        return(FALSE);
    }

    return(TRUE);
}