Menu kontekstowe dla kontrolki ListView tworzę dynamicznie podczas obsługi komunikatu WM_NOTIFY o kodzie NM_RCLICK:
if(NotifyHeader->code == NM_RCLICK)
{
if(((NMITEMACTIVATE *)NotifyHeader)->iItem != -1)
{
GetCursorPos(&Point);
PopupMenu = CreatePopupMenu();
InsertMenu(PopupMenu, 0, MF_BYPOSITION | MF_STRING, ID_POPUP_01, _T("MenuItem01"));
InsertMenu(PopupMenu, 0, MF_BYPOSITION | MF_STRING, ID_POPUP_01, _T("MenuItem02"));
SetForegroundWindow(GetDlgItem(DlgHandle, IDC_LSV_01));
TrackPopupMenu(PopupMenu, TPM_BOTTOMALIGN | TPM_LEFTALIGN, Point.x, Point.y, 0,
GetDlgItem(DlgHandle, IDC_LSV_01), NULL);
}
}
Pytanie: jakie zdarzenie jest generowane podczas wyboru jednej z opcji menu? Wydawało mi się, że zostanie wygenerowany komunikat WM_COMMAND ale tak się nie dzieje. Jak określić, który wiersz kontrolki ListView został kliknięty generując menu tak by można było odczytać dane z tego wiersza? Z góry dziękuję za wszelkie wskazówki.
AdrianO