在 mfc 中检索键盘中断结果
Retrieving keyboard interrupt result in mfc
我有 CListCtrl,我正在尝试处理一些键盘按钮,例如
向上翻页/向下翻页等。我正在使用 OnLvnKeydown 处理程序。
我的问题是在键盘中断后检索项目的索引。例如,如果项目 1 已标记并且我按下翻页键,我想显示现在标记的新项目的详细信息,但提供的所有功能 - GetFirstSelectedItemPosition、GetSelectionMark 等 - returns 所选项目中断发生时,表示第 1 项。
有谁知道如何处理这个问题?如何在中断完成后检索新标记项的索引?
感谢大家的帮助!
在您的消息映射中添加
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;
}
我有 CListCtrl,我正在尝试处理一些键盘按钮,例如 向上翻页/向下翻页等。我正在使用 OnLvnKeydown 处理程序。 我的问题是在键盘中断后检索项目的索引。例如,如果项目 1 已标记并且我按下翻页键,我想显示现在标记的新项目的详细信息,但提供的所有功能 - GetFirstSelectedItemPosition、GetSelectionMark 等 - returns 所选项目中断发生时,表示第 1 项。 有谁知道如何处理这个问题?如何在中断完成后检索新标记项的索引?
感谢大家的帮助!
在您的消息映射中添加
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;
}