Как обнаружить изменение выбора CListCtrl?

У Вас должен быть делегат сначала

delegate int Operation(int a, int b)

тогда, это становится:

public void InvokeMethod(Operation method, object target, object param)
{
    method((int) target, (int) param);
}

Никакая потребность в любом вызове для Вызова.

Как с dbone я не уверен, почему Вам были бы нужны параметрические усилители [] массив. Вы разъяснили бы расширенное использование для параметрических усилителей?

кроме того, я должен буду исправить что-то в Вашем вопросе, хотя, потому что он вызовет ошибку компиляции: p

30
задан rec 22 September 2009 в 22:10
поделиться

2 ответа

Также попробуйте:

BEGIN_MESSAGE_MAP(cDlgRun, CDialog)
    ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST2, OnItemchangedList2)
END_MESSAGE_MAP()

/* ... */

void cDlgRun::OnItemchangedList2(NMHDR* pNMHDR, LRESULT* pResult) 
{
    NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;

    if ((pNMListView->uChanged & LVIF_STATE) 
        && (pNMListView->uNewState & LVIS_SELECTED))
    {
        // do stuff...
    }
}
40
ответ дан 27 November 2019 в 23:51
поделиться

djeidot в порядке.

Я просто хочу добавить, что нет OnSelectionChanged (), потому что ListView поддерживает множественный выбор (хотя это можно отключить). Следовательно, просмотр списка с одним выбором отправит вам два события: старый элемент не выбран И новый элемент выбран.

4
ответ дан 27 November 2019 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: