Listview Eintrag selektieren

jleschi

Grünschnabel
Hi Leute,

mein Problem ist, dass ich ein Listview erstellt habe, von dem ich nur Einträge von der ersten Spalte selektieren kann. Von der Zweiten Spalte ist es leider nicht möglich!
Vielleicht könnt ihr mir da weiter helfen, was ich falsch gemacht habe, oder ein Flag nicht gesetzt habe.

Der Code von mir für die Listbox lautet:

hListView = CreateWindowEx(0,WC_LISTVIEW, NULL,WS_CHILD | WS_VISIBLE |LVS_REPORT|LVS_EDITLABELS,0,0,100,100,hwnd,(HMENU) NULL,hThisInstance,NULL);

lvc.mask=LVIF_STATE|LVCF_FMT | LVCF_WIDTH | LVCF_TEXT |
LVCF_SUBITEM|LVIF_PARAM;
lvc.iSubItem = 0;
lvc.pszText = TEXT("Point");
lvc.cx = 50;
ListView_InsertColumn(hListView, 0, &lvc);
lvc.iSubItem = 1;
lvc.pszText = TEXT("Time");
ListView_InsertColumn(hListView, 1, &lvc);
for(int i=0;i<5;i++)
{
lv.iItem = 0;
lv.iSubItem=0;
lv.pszText="Col1";
ListView_InsertItem(hListView, &lv);
SendMessage(hListView,LVM_SETITEMTEXT,(WPARAM)0,(LPARAM)&lv);

lv.iSubItem=1;
lv.pszText="Col2";
ListView_InsertItem(hListView, &lv);
SendMessage(hListView,LVM_SETITEMTEXT,(WPARAM)0,(LPARAM)&lv);
}



Vielen Dank für Eure Mühen.

Grüße josef
 
Hallo,

bei der Auswahl wird entweder nur die erste Spalte hervorgehoben (Standardverhalten) oder aber die gesamte Zeile (also alle Spalten).
Letzteres kannst du erreichen, wenn du einen entsprechenden Extended Style verwendest:
C++:
hListView = CreateWindowEx(LVS_EX_FULLROWSELECT, ... );
Gruß
MCoder
 
Danke für die Antwort,

doch leider funktioniert es bei mir nicht.

Wenn ich "LVS_EX_FULLROWSELECT" dazufüge, dann meldet der compiler, dass LVS_EX_FULLROWSELECT undeclared.

Außerdem möchte ich nicht die ganze Zeile makieren, sondern z.B. den Ersten Eintrag von Spalte 2.

Grüße Josef
 
Wenn ich "LVS_EX_FULLROWSELECT" dazufüge, dann meldet der compiler, dass LVS_EX_FULLROWSELECT undeclared.
Das wundert mich; mit welcher Entwicklungsumgebung werkelst du denn?
Damit es funktioniert, könntest du Folgendes ergänzen:
C++:
#ifndef LVS_EX_FULLROWSELECT
#define LVS_EX_FULLROWSELECT 0x00000020
#endif
Außerdem möchte ich nicht die ganze Zeile makieren, sondern z.B. den Ersten Eintrag von Spalte 2.
Das gibt das ListView-Control von Haus aus nicht her. Da müsstest über den Owner-Draw-Mechanismus gehen.
Das bedeutet allerdings Arbeit ...

Gruß
MCoder
 
Zurück