# List Box



## blackboy (6. April 2005)

Hallo

Also ich lade den Inhalt aus einem Textfile in eine Listbox... 
jetzt möchte ich das beim starten des programmes, der oberste eintrag schon ausgewählt ist.. normalerweise ist ja kein eintrag ausgewählt...

gibt es da ein befehl ?

danke


----------



## MFC openGL (6. April 2005)

Wie immer die selbe Frage :

Bestriebssystem
Compiler
...


----------



## blackboy (6. April 2005)

vc++ 6

und windows 2000


----------



## jokey2 (6. April 2005)

Versuch mal 
	
	
	



```
listbox.SetCurSel(0);
```


----------



## blackboy (6. April 2005)

Geht leider nicht... Mein problem ist, ich arbeite ein einem bereits vorhandenen Code.. ich kann keine Liste über die Memberfunktion ansprechen.. um den wert des ausgewählten Listeneintrags zu ermitteln brauche ich folgenden code


> sel=SendMessage(GetDlgItem(hdlg,IDC_LIST1),LB_GETCURSEL,0,0);


jetzt müsste ich ebenfalls einen solchen code haben um die default auswahl zu setzen *seufz*..


----------



## MFC openGL (6. April 2005)

Also ich habe das früher immer mit 

Listbox * test = CDialog::GetDlgItem(...);

test->setcursel(0);


gemacht.

Also erst einen Listboxpointer holen, den speichern und dann mit dem Pointer agieren. Sollte eigendlich gehen.

Quellcode oben ist nur als Verständnisbeispiel, kein Codebeispiel !


----------



## blackboy (6. April 2005)

Also ich habe jetzt folgenden Code eingefügt 


```
Listbox * test = CDialog::GetDlgItem(hdlg,IDC_LIST2); 
test->SetCurSel(0);
```
 
nun bekomme ich folgende fehlermeldungen


```
'test' : undeclared identifier
'Listbox' : undeclared identifier
'GetDlgItem' : none of the 2 overloads can convert parameter 1 from type 'struct HWND__ *'
left of '->SetCurSel' must point to class/struct/union
```


----------



## Test (6. April 2005)

Warum verwendest du nicht einfach das Gegenstück zu LB_GETCURSEL, also
LB_SETCURSEL?


----------



## jokey2 (6. April 2005)

Du solltest 
	
	
	



```
CDialog * pDlg;
 CListBox * ptest = CWnd::GetDlgItem(IDC_LIST2, pDlg);
```
nehmen. Den Typ Listbox kennen die MFC nicht.Die Funktion CWnd::GetDlgItem(...)hat als ersten Parameter die ID des Controls, als 2. optionalen Parameter einen Zeiger auf den Dialog.
 Die globale Funktion ::GetDlgItem(...) nimmt als ersten Parameter ein Handle auf das Fenster, liefert aber auch ein Handle zurück und keinen Pointer. Das sähe dann so aus:
	
	
	



```
HWND hwndList = ::GetDlgItem(hwndDlg, IDC_LIST2);
```
Wie Du dann allerdings vom Handle einen Pointer kriegst, weiß ich jetzt auch nicht, aber evtl. ja jemand Anderes.


----------



## SebastianHL (17. Februar 2006)

Hi geht das nicht wenn du einfach sagst


```
ListBox_Form1->ItemIndex = 0;
```

dann müßte der erste Eintrag ausgewählt sein ! denke ich.....


----------

