kombinationsfeld mit Controlvariable
-
nabend
hab ein kombinationsfeld mit einer Control-Variable zwecks einfügen von Listenelementen mit "AddString(xxx)". das einfügen klappt wunderbar, nur wird`s mit dem auswerten der ausgewählten elemente schwierig, da man bei einer Control-Variable kein "switch" benutzen kann. wie kann ich das umgehen / was muss ich statt "switch" verwenden?
-
Hi,
ich habe zwar keine Ahnung wie die Controlvriable aussieht, aber kannst Du das nicht durch if-Vergleiche realisieren?
e.g.
Variable x = wert;
if(x == wert1)Anweisung1;
if(x == wert2)Anweisung2;
if(x == wert3)Anweisung3;usw.
-
kann man leider nicht ...
" Binaerer Operator '==' : Kein Operator definiert, der einen linksseitigen Operator vom Typ 'class CComboBox' akzeptiert (oder keine geeignete Konvertierung moeglich) "mit ner int - variable wär´s gut gegangen, aber dann kann ich ja "AddString" nich benutzen ...
-
Hi,
was möchtest Du denn genau machen?
-
ich will ein kombinationsfeld haben, in dem verschiedene variablen mit "AddString" dargestellt werden. der user wählt eine der Feldelemente aus und das prog geht weiter (genauer: es soll sich per button-klick ein neues fenster öffnen). dass das feld die inhalte der variablen darstellt ist dank der Controlvariable kein problem, und ich kann auch wählen welches (element) ich "auswähle", nur müsste ja dann auf dem button eine switch-funktion stehen, um nachzusehen, welches element denn nun gewählt wurde. dies ist aber nicht möglich mit einer controlvariable.
-
Hi!
Auf den angezeigten Text eines CComboBox kannst du mit CComboBox::GetLBText(...) zugreifen. Und für den Text (sprich CString) gibt es Operator '=='
-
richtig ... aber ich brauch ja den string, den der user ausgewählt hat in der box. GetLBText braucht doch als erstes argument ne int - zahl, nämlich welcher eintrag in dem listenfeld bearbeitet werden soll. genau das weiss ich aber nich, der user klickt einfach irgendein element der box an. ich brauch also ne funktion, die mir sagt, welches der elemente angeklickt wurde. (und wenn`s geht das ganze in CString, dann kann ich ja gleich vergleichen)
-
OK, habs doch anders gemacht: GetCurSel() gibt die zeile des feldes an, die der user gewählt hat. da ich ja weiss, was ich vorher in das feld geschrieben habe (und damit auch in welche zeile), weiss ich, was der user ausgewählt hat ^^.
falls es doch noch irgendeinen befehl dafür gibt, der das ganze eleganter macht, her damit! ^^
@ Laie: danke für den denkanstoß, ich hätt sonst nie unter "GetLBText" geguckt ^^