problem mit combobox
-
hallo,
habe mal folgendes problem.erstellt wurde eine combobox mit dem resourceditor von vc++ ( unter w2k ) welche mit firmennamen aus einer datenbank gefüllt wird.
wird nun eine andere firma ausgewählt sollen dessen informationen im formular etwas unter der combox sofort geändert werden.
ich habe CB_selchange und noche in paar andere message ausprobiert aber irgendwie immer das gleich problem !
wähle ich firma a aus werden dessen daten auch angezeigt. nun wähle ich firma b aus -> es werden noch immer die daten von firma a angezeigt -> wähle ich firma c -> dann die daten von firma b -> immer so weiter...
es wird immer das letzte verwendet statt dem aktuellen !
hat jemand einen tipp ?
wäre sehr freundlich
-
Ein bißchen Code wäre hilfreich!
-
mhh , was genau möchtest du den ?
mein code ist sehr gross
-
Liegt es vielleicht daran, dass du verkennst, dass der erste Eintrag in der ComboBox den Index 0 und nicht 1 hat?
-
Du liest dann mit CB_GETCURSEL die aktuelle Auswahl ein?
Also zeig mal den Code, wie du auf CBN_SELCHANGE reagierst mit der Ausgabe der Daten
-
ok, werd mal paar mehr infos preis geben
auf cbn_selchange reagiere ich wie folgt:
case WM_COMMAND: switch( HIWORD( wParam ) ) { case CBN_SELCHANGE: KundeFelderFuellen( hWnd ); return TRUE; } return TRUE;
die funktion kundefelderfuellen() holt sich dann den text aus der combobox und schickt eine abfrage ( sql ) ab und füllt dann damit die felder ( name , tele , fax , etc... )
GetWindowText( GetDlgItem( hWnd , IDC_KuFirmenname ) , szFirma , sizeof( szFirma ) ); wsprintf( szBuffer , "SELECT * FROM Kundendaten WHERE KuFirmenname = '%s'",szFirma );
-
Versuch mal statt GetWindowText den Text mit CB_GETCURSEL und anschließend CB_GETLBTEXT zu bekommen - ansonsten kA
-
klasse felnders, grosse danke
klappt !!
habs nun so:nIndex = SendMessage( GetDlgItem( hWnd , IDC_KuFirmenname ) , CB_GETCURSEL , 0 , 0 ); SendMessage( GetDlgItem( hWnd , IDC_KuFirmenname ) , CB_GETLBTEXT , nIndex , (LPARAM)szFirma ); wsprintf( szBuffer , "SELECT * FROM Kundendaten WHERE KuFirmenname = '%s'",szFirma );