ComboBox
-
ich lade eine Combobox
// CComboBox m_cb_box;
m_cb_box.AddString("Text 1");
m_cb_box.AddString("Text 2");
m_cb_box.AddString("Text 3");
m_cb_box.AddString("Text 4");
m_cb_box.AddString("Text 5");m_cb_box.SelectString(-1,"Text 3");
UpdateData(false);
Ich sehe auf dem Dialog immer "Text 5"
was hab ich vergessen ??

-
Warum machst du das UpdateData(false)?
-
es geht weder mit UpdateDate() noch ohne noch true noch false
-
An dem code kanns nicht liegen, der stimmt. Da muss noch irgend was anderes an der combobox rumbasteln. Selbst ein tippfehlet in SelectString würde nicht "Text 5" sondern gar nichts selectieren.
-
in der realität sihts so aus
SlaveDlg = new SeriComSlaveDlg;
SlaveDlg->Create(IDD_SLAVE_DIALOG);SlaveDlg->m_cb_proto.ResetContent();
SlaveDlg->m_cb_proto.AddString("Nothing");
char name[256];
char text[256];
for(proto=GetProtokoll(true);proto!=NULL;proto=GetProtokoll(false))
{
proto->pGetInfo(name,text);
SlaveDlg->m_cb_proto.AddString(name);
}
SlaveDlg->UpdateData(false);
Config->Slave[i_sel_add]->prototxt[11]=0;
int s = SlaveDlg->m_cb_proto.SelectString(-1,
Config->Slave[i_sel_add]->prototxt);
if (s==CB_ERR) s = SlaveDlg->m_cb_proto.SelectString(-1,"Nothing");SlaveDlg->ShowWindow(SW_SHOWNORMAL);
-
Klick mal in deine ComboBox und geh dann mal mit den Pfeiltasten rauf bzw. runter. Dann siehst Du auch deine anderen Einträge.
ComboBox vergrößern:
Im Dialogeditor auf den Pfeil der Combobox klicken, dann kannst Du sie auch größer ziehen.
-
ja ja das stimmt schon
nur wollte ich einen bestimmten eintrag schon vor selektieren (per Software)
und das nicht den letzten
-
Das ist leicht.
m_cb_proto.SetCurSel(0);Zeigt den ersten Eintrag an.
-
sonnenschein schrieb:
es geht weder mit UpdateDate() noch ohne noch true noch false
UpdateData hat ja auch nichts damit zu tun. Das brauchst du wenn du die Controls mit Membervariablen verknüpft hast um die Variablen in die Controls zu schreiben (true) oder um die Werte aus den Controls in die eigenen Membervariablen zu schreiben (false). Ist also hier fehl am Platze.
-
Aber nun zu deinem Problem. Das sollte eigentlich klappen so wie du das gemacht hast. Probier zur Not mal
m_cb_box.SetCurSel(2);.