У меня есть CListCtrl, и я пытаюсь обрабатывать некоторые кнопки клавиатуры, такие как
page-up / page-down и т. д. Я использую обработчик OnLvnKeydown.
Моя проблема заключается в получении индекса элемента после прерывания клавиатуры. Например, если элемент 1 помечен и я нажимаю на страницу вниз, я хочу показать детали нового элемента, который теперь помечен, но все предлагаемые функции — GetFirstSelectedItemPosition, GetSelectionMark и т. Д. — возвращает элемент, выбранный при возникновении прерывания. , что означает пункт 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;
}