ListView Wie ausgewähltes Item ermitteln?

Diskutiere ListView Wie ausgewähltes Item ermitteln? im Developer Network Forum im Bereich Hardware & Software Forum; Hallo, ich suche jetzt schon was länger, habe folgendes: hListView = CreateWindow(WC_LISTVIEW, "", WS_BORDER | WS_CHILD |...
  • ListView Wie ausgewähltes Item ermitteln? Beitrag #1
Anno1989

Anno1989

Bekanntes Mitglied
Dabei seit
30.04.2006
Beiträge
1.293
Reaktionspunkte
0
Ort
NRW
Hallo, ich suche jetzt schon was länger, habe folgendes:
Code:
hListView = CreateWindow(WC_LISTVIEW, 
							"", 
							WS_BORDER | WS_CHILD | WS_VISIBLE | LVS_SINGLESEL, 
							5,30,300, 400, 
							hWnd, 
							NULL, 
							((LPCREATESTRUCT) lParam) -> hInstance,
							NULL);
Die Listbox fülle ich mit Werten, also in meinem Falle vielen Namen.
Wenn auf einen Button geklickt wird, soll in einer MessageBox der Name bzw. der Wert des angebebenen Items ausgegeben werden:
Code:
if (lParam == (LPARAM)hButton_Anzeigen)
	    {
		if (HIWORD(wParam) == BN_CLICKED) {
					
			ListView_GetItemText(hListView, iItem, 0, /*char array*/ItemText, 200);

			MessageBox(0, test, 0, 0);
			}
Nur, wie bekomme ich iItem, also die Nummer des gerade Angewählten Elements?
Zudem, wie mache ich das, dass die Items ausschließlich horizontal angezeigt werden und nicht vertikal gescrollt werden muss?
Ich hab schon alle möglichen Funktionen probiert aber kam leider bisher nichts gescheites bei raus, wie ich das bekomme, habe LVS_SINGLESEL als Style, damit auch wirklich nur eins angewählt werden kann, danke schonmal.

MfG
Anno1989
 
  • ListView Wie ausgewähltes Item ermitteln? Beitrag #2
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Nur, wie bekomme ich iItem, also die Nummer des gerade Angewählten Elements?
Die Anzahl der selektierten Einträge bekommst Du mit ListView_GetSelectedCount raus. Die selektierten Einträge mit ListView_GetNextItemIndex und LVNI_SELECTED als flag. Die genaue Beschreibung der Parameter findest Du wie immer im Windows-SDK.
 
  • ListView Wie ausgewähltes Item ermitteln? Beitrag #3
Anno1989

Anno1989

Bekanntes Mitglied
Dabei seit
30.04.2006
Beiträge
1.293
Reaktionspunkte
0
Ort
NRW
Super, hat wiedermal alles geklappt. ;)
Code:
iItem = ListView_GetNextItem(hListView, -1, LVNI_SELECTED);
ListView_GetItemText(hListView, iItem, 0, test, 200);
Habe ja LVS_SINGLESEL gesetzt, sodass ich hier ListView_GetSelectedCount nicht brauche. Mein Problem war, dass ich nach etwas wie GetSelectedItem und so gesucht habe. ;)
Danke Dir, nur wie bekomme ich das nuh mit der Horizontalen Anordnung hin, habe schon mehrere Styles, wie z.B. WS_HSCROLL versucht, Fehlanzeige.

MfG
Anno1989
 
  • ListView Wie ausgewähltes Item ermitteln? Beitrag #4
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Wenn Du Alignment auf Left setzt und Dein Listview nicht kleiner als ein Item ist, dann sollte nur ein horizontaler Scrollbar erscheinen.
 
  • ListView Wie ausgewähltes Item ermitteln? Beitrag #5
Anno1989

Anno1989

Bekanntes Mitglied
Dabei seit
30.04.2006
Beiträge
1.293
Reaktionspunkte
0
Ort
NRW
Okay, habe mich vertan... Ich meinte eine Vertikale Anordnung...
Tut mir leid. Horinzontal ist es nämlich dauerhaft. Mein Fehler.;)
 
  • ListView Wie ausgewähltes Item ermitteln? Beitrag #6
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Dann stellst Du das Alignement eben auf Top ;-) Und die Items dürfen nicht breiter sein als das Listview, da es sonst wieder einen horizontalen Scrollbalken gibt.
 
  • ListView Wie ausgewähltes Item ermitteln? Beitrag #7
Anno1989

Anno1989

Bekanntes Mitglied
Dabei seit
30.04.2006
Beiträge
1.293
Reaktionspunkte
0
Ort
NRW
Jop, habe folgendes:
Code:
hListView = CreateWindow(WC_LISTVIEW ,  "", 
		WS_BORDER | WS_CHILD | WS_VISIBLE | LVS_SINGLESEL |LVS_LIST| LVS_ALIGNTOP , 
		5,30,570, 270, 
		hWnd, 
		NULL, 
		((LPCREATESTRUCT) lParam) -> hInstance,
		NULL);
Keines der Items ist breiter, nach wie vor kein Vertikaler Scrollbalken in Sicht, ich denke mal ich mache da was falsch...
 
  • ListView Wie ausgewähltes Item ermitteln? Beitrag #8
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Hab nochmal kurz experimentiert. Scheint an LVS_LIST zu liegen. Probier mal eine andere View. Z.B. Large Icons oder Details.

Zum Experimentieren eignet sich übrigens VS Studio C# sehr gut. Da kannst Du mit wenigen Klicks einen Dialog mit einer Listview bauen und dann mit den Eigenschaften rumspielen. Das Listview von Windows-Forms ist eigentlich nur ein Wrapper um das Win32-Listview-Control, so daß Du die Ergebnisse recht einfach in Dein Win32-Programm übertragen können solltest.
 
  • ListView Wie ausgewähltes Item ermitteln? Beitrag #9
Anno1989

Anno1989

Bekanntes Mitglied
Dabei seit
30.04.2006
Beiträge
1.293
Reaktionspunkte
0
Ort
NRW
Ja, mit dem Style kommt sicher noch irgendwas anderes dazu.
Nur ich finde keine LVS_Details oder LVS_LARGEICON Styles.
Ich hab das nuh mit LVS_REPORT und einem Column gemacht, ich kann die Breite der Spalte leider noch verschieben, aber immerhin werden die so schonmal untereinander angezeigt...
 
Thema:

ListView Wie ausgewähltes Item ermitteln?

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.172
Mitglieder
55.878
Neuestes Mitglied
Satan666
Oben