2016-08-22 1 views
1

У меня есть элемент управления List, содержащий строки. Теперь я пытаюсь удалить строку нажатием клавиши удаления. Я пытаюсь с: LVN_DELETEITEM, как показано ниже:Элемент управления списком Удалить строку на кнопке Delete Delete

AFX Сообщение:

afx_msg void OnLvnDeleteitemList(NMHDR *pNMHDR, LRESULT *pResult); 

Сообщение Карта:

ON_NOTIFY(LVN_DELETEITEM, IDC_LIST_ACQUISITION_SETTINGS, &MeasureDialog::OnLvnDeleteitemList) 

Реализация OnLvnDeleteitemList:

void MeasureDialog::OnLvnDeleteitemList(NMHDR *pNMHDR, LRESULT *pResult) 
{ 
    LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR); 
    // TODO: Add your control notification handler code here 
    ReportMessage(L"Deleted"); 
    *pResult = 0; 
} 

Но я никогда не буду приходить в метод OnLvnDeleteitemList. Что не так?

ответ

4

Сообщение LVN_DELETEITEM четко говорится, что:

Уведомляет родительское окно управления списком-View, что пункт сейчас будет удален.

Это означает, что когда элемент удален, будет отправлено уведомление. Нажатие клавиши удаления не вызовет этот метод. Вам нужно самому обработать сообщение с ключевым словом Delete (WM_KEYDOWN) и позвонить по телефону CListCtrl::DeleteItem

+0

было очень полезно. благодаря –