Delphi-Quellcode:
WM_NOTIFY:
begin
{ Benachrichtigungs-Codes vom Listview behandeln }
if PNMHdr(lParam).idFrom = IDC_LV then
case PNMHdr(lParam)^.code of
{ Doppelklick auf Listview-Eintrag -> Kontakt-Dialog öffnen }
NM_DBLCLK, NM_RETURN:
begin
{ Sender = Listview }
Sender := SNDR_LV;
Caption := GetCaption(hDlg, IDC_LV);
{ keinen Eintrag dierekt angeklickt, GetCaption ist gescheitert }
if Caption = '' then exit;
{ ansonsten Kontakt anzeigen }
DialogBox(hInstance, MAKEINTRESOURCE(200), hDlg, @dlgContact);
end;
Der obiger Code sollte eigentlich auch ausgeführt werden, wenn der Listview den Focus hat und man Return drückt. Tut es aber nicht. Der Doppelklick funktioniert aber.
Der Code stammt aus meiner AdressDB, die man sich auch mit Source von meiner Seite runterladen kann.