我有CListCtrl,我试图处理一些键盘按钮,如 页面向上/向下翻页等。我使用的是OnLvnKeydown处理程序。 我的问题是在键盘中断后检索项目的索引。例如,如果标记了第1项并按下向下翻页,我想显示现在标记的新项目的详细信息,但所有提供的函数 - GetFirstSelectedItemPosition,GetSelectionMark等 - 返回中断发生时选择的项目,意思是第1项。 有谁知道如何处理这个问题?中断完成后如何检索新标记项的索引?
感谢您的帮助!
答案 0 :(得分:0)
在您的留言地图中添加
ON_NOTIFY(LVN_ITEMCHANGING, YOUR_LIST_CONTROL_ID, &CYourDialog::OnItemchanging)
然后实现OnItemchanging
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;
}