0

我有 CListCtrl 并且我正在尝试处理一些键盘按钮,例如向上翻页/向下翻页等。我正在使用 OnLvnKeydown 处理程序。我的问题是在键盘中断后检索项目的索引。例如,如果项目 1 被标记并且我按下 page-down 我想显示现在标记的新项目的详细信息,但提供的所有功能 - GetFirstSelectedItemPosition、GetSelectionMark 等 - 返回发生中断时选择的项目,意思是第1项。有谁知道如何处理这个问题?中断完成后如何检索新标记项的索引?

感谢所有的帮助!

4

1 回答 1

0

在您的消息地图中添加

ON_NOTIFY(LVN_ITEMCHANGING, YOUR_LIST_CONTROL_ID, &CYourDialog::OnItemchanging)

然后实现 OnItemchange

void CYourDialog::OnItemchanging(NMHDR *pNMHDR, LRESULT *pResult)
{

    // LVN_ITEMCHANGING notification handler
    LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);

    // is the user selecting an item?
    if ((pNMLV->uChanged & LVIF_STATE) && (pNMLV->uNewState & LVNI_SELECTED))
    {       
        // do what you want with your selected item pNMLV
    }
    *pResult = 0;
}
于 2015-05-11T11:03:58.577 回答