Получение результата прерывания клавиатуры в MFC

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

Спасибо за помощь!

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;
}
0

Другие решения


По вопросам рекламы [email protected]