CComboBox: Text aus Edit-Feld lesen
-
Hallo
Trotz langem suchen habe ich bisher noch keine Antwort auf mein Problem gefunden...Bekanntlich kann man ja bei einer Combobox mit der Methode "GetCurSel" den Index des ausgewählten Eintrags herausfinden bzw. mit der Methode "GetLBText" den entsprechenden Text dazu...
Was ich aber nicht weiss, ist, wie man den benutzerdefinierten Text aus dem Edit-Feld herauslesen kann, sofern einer eingegeben wurde.
Kann mir jemand sagen welche Methode/n dafür zuständig ist/sind ?
-
du legst eine Membervariable auf dein EditControl an und nach UpdateData(true); steht deine Eingabe in der Variablen drin. Den Text aus ner Combo bekommt man doch mit getItemData, oder?
-
GetItemData gibt dir ne Zahl.
GetWindowText wärs gewesen.
-
ahhh Danke, so einfach geht das also
-
he he stimmt ja! Naja man sieht schon wer was schreibt allein am Inhalt des Beitrages!
-
da wir schon beim Thema Combobox sind...
...hätte ich noch eine Frage:
Das Problem ist, dass man im Edit-Feld der Combobox nur soviele Zeichen eingeben kann wie auch angezeigt werden können. Also z.B. bei nem normalen Edit-Feld (CEdit) da kann man ja (sofern keine Begrenzung) so viel Zeichen eingeben wie man will auch wenn nicht alle aufs mal angezeigt werden. Ich hoffe ihr kapiert was ich meine...
Also gibt es eine Möglichkeit, dass man mehr Text hinein schreiben kann, d.h. unabhängig von der Grösse der ComboBox ?
-
Ich verwende Comboboxen nur zur Auswahl, daher kenne ich das Problem nichtmal.
Aber man kann bestimmt an das Edit rankommen und da hast du dann viele Möglichkeiten:
SetLimitText setzt die maximal eingebbare Zeichenanzahl.
Irgendwie kann man bestimmt das AutoHScroll aktivieren.
-
Ich gebe Estartu wie immer recht unter den Properties unter Styles gibt es AutoHScroll oder so ähnlich wenn du das mit nem Haken versiehst kannste tippen tippen tippen. Allerdings bist du standardmäßig bei Combo und Editfeldern begrenzt auf 255 Zeichen! Weil du im normalfall einen String auf die Controls legst und der ist auf standardmäßig auf 255 begrenzt. Brauchst denn mehr??
-
Polofreak schrieb:
Weil du im normalfall einen String auf die Controls legst und der ist auf standardmäßig auf 255 begrenzt.
MSDN:
A CString object can store up to INT_MAX (2,147,483,647) characters.
-
Polofreak hat das vermutlich mit der Grenze im ODBC-Treiber verwechselt, die ihn neulich mal erwischt hatte.
-
WOW das überrascht mich! Ich hab aaaaaaaaaaaaaaaaaaaaaahhhhhhhhhh jetzt!
Ich nehm alles von oben zurück! Ich habe in meinem Source EEPROM Werte die so ca 2000 Zeichen haben. Diese les ich aus einer DB aus. Dabei gab es immer Probleme, und mit Hilfe von Estartu_de hab ich dann eine funktionierende Zeile gebastelt aber bis eben falsch interprätiert! BZW zu wenig Gedanken darüber gemacht! Hier hat das ja gar ncihts mit meinem CString zu tun!
RFX_Text(pFX, _T("[EEPromWerte]"), m_EEPromWerte, 2000);
Ich war nur anfangs der Meinung mein CString sei zu klein und drum war das noch in meinem Kopf verankert als CString = 255 Zeichen jetzt steht im Brain dahinter !! ACHTUNG FALSCH !!
-
danke !
255 Zeichen reichen locker, aber die ca. 15 Zeichen waren schon etwas wenig
-
Naja wie man ja gesehen hat bist du nicht beschränkt auf die 255 Zeichen wenn du eine Eingabe ausliest! BZW so beschränkt dass es nicht relevant ist
isbeau schrieb:
up to INT_MAX (2,147,483,647) characters
-
ja, also 2,147,483,647 Zeichen reichen ganz bestimmt
langsam ist es mir peinlich zu fragen aber ich habe noch eine Frage zur Combobox...
gibt es da eine Möglichkeit die Eingabe des Benutzers im Edit-Feld zu (auto)vervollständigen ? also z.B. so wie im Internet-Explorer bei der URL, dass man ein paar Zeichen eingibt und dann erscheinen automatisch die Einträge aus der Liste die den eingegebenen String beinhalten ? oder muss man das selber irgendwie programmieren ?
Sorry für die vielen Fragen
-
da gibt es tolle sachen bei Codeproject aber die seite scheint grad down zu sein drum kann ich dir nichts raussuchen. Schau bei gelegenheit selbst dort nach