Wie prüft man ob auf ein Element einer Liste geklickt wurde?
-
Hallo,
Ich habe einen kleines Prog geschrieben, mit dem man Kauf-Presets eines Spiels verwalten kann.
Alle Presets werden in einer Liste aufgelistet. Ich möchte nun,
dass wenn ich auf ein Preset in der Liste klicke, Infos
zu zu diesem angezeigt werden.
Wie kann ich prüfen ob auf ein Element in der Liste geklickt wurde?mfg Mortl
-
SendMessage(hwndList, LB_GETCURSEL, 0, 0);
-
Nein, das meinte ich nicht ganz.
Das mache ich ja erst nachdem auf die Liste geklickt wurde,
aber ich weis ja nicht ob überhaupt geklickt wurde.
Gibt es da keine Message die ich in der Callback verarbeiten könnte?
-
LBN_SELCHANGE ?!
-
Ich verwende keine ListBox, sondern eine ListControl.
Ich habe aber im MSDN folgendes gefunden:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listview/macros/listview_setextendedlistviewstyleex.asp
Nur leider funktioniert das irgendwie nicht.
Kann mir vielleicht jemand ein Codebeispiel posten, danke :).
-
Sorry, falscher Link, hier ist der richtige:
http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/listview/notifications/nm_click_listview.asp?frame=true
-
Starship schrieb:
Nur leider funktioniert das irgendwie nicht.

Zeig' doch mal deine bisherigen Versuche

-
Also ich habs ungefähr so gemacht:
case WM_NOTIFY: switch(HIWORD(wParam)) //Da bin ich mir nicht so ganz sicher { case NM_CLICK: lst = GetDlgItem(hDlg, IDC_PRESETS1); i = ListView_GetSelectionMark(lst); RefreshPresetInf(hDlg, &Presets1.GetPreset(i)); return TRUE; } return FALSE;
-
Versuch mal dieses switch:
switch(((LPNMHDR)lParam)->code)
-
Cool, es funktioniert.

Danke