Hier benutzen wir wieder die Nachricht "WM_COMMAND". Im höherwertigen Wort von wParam befindet sich die Listbox-Nachricht "LBN_SELCHANGE", die ausgelöst wird wenn die Auswahl des Listenfeldes ändert. (Andere Benachrichtigungscodes finden Sie in der Hilfe und im MSDN.) Im niederwertigen Wort von wParam befindet sich der Bezeichner des betreffenden Listenfeldes.
WM_COMMAND:
case hiword(wParam) of
LBN_SELCHANGE:
case LoWord(wParam) of
IDC_LB:
begin
end;
end;
end;
Zu Demonstrationszwecken benutze ich hier einmal "LB_GETSEL" um den Status eines Eintrages abzufragen. Die Alternative wäre wieder "LB_GETSELCOUNT".
Items := SendMessage(hwndListbox, LB_GETCOUNT, 0, 0); for i := 0 to Items do if SendMessage(hwndListbox, LB_GETSEL, i, 0) > 0 then begin Inc(SelItems); wvsprintf(buffer1, 'davon markiert: %d', PChar(@SelItems)); lstrcpy(buffer, buffer1); end;