Veröffentlicht 5. Mai 200916 j Hallo, ich schreibe ein Programm(C++ unter Verwendung von MFC) mit Visual Studio als Entwicklungsumgebung. Nun habe ich eine ComboBox und möchte das aktuell ausgewählte Element ausgeben. Die ComboBox habe ich wie folgt initialisiert: m_From.AddString(strExplorerI); m_From.AddString(strExplorerII); m_From.AddString(strExplorerIII); m_From ist Variable der ComboBox. Nun habe ich bei der ComboBox einen Ereignishandler hinzugefügt. Bei Auswahl eines ComboBox-Elements soll das Element auf einem Fenster ausgegeben werden: void Programm::OnCbnSelchangeFrom() { CString cString; // Variable für den Text int index; index=1; index = m_From.GetCurSel(); m_From.GetDlgItemText(index, cString); AfxMessageBox(cString); } Aus irgendeinem Grund wird index kein gültiger Wert zugewiesen. Wieso?
5. Mai 200916 j Aus irgendeinem Grund wird index kein gültiger Wert zugewiesen.Mich würde wirklich interessieren, wie du zu dieser Schlussfolgerung kommst. Mit dem Index ist vermutlich alles in Ordnung, nur GetDlgItemText ist die grundfalsche Methode. CComboBox::GetLBText Und beachte, dass man bei einer ComboBox mit dem Style CBS_DROPDOWN Texte selbst eingeben kann, die gar nicht in der Liste stehen. In diesem Fall liefert dir GetCurSel wirklich einen ungültigen Index.
10. Mai 200916 j Hallo, ja mit der Methode CComboBox::GetLBText funktioniert es! Mich würde wirklich interessieren, wie du zu dieser Schlussfolgerung kommst. Ich habe mal versucht mir Index ausgeben zu lassen und es kam auch eine Fehlermeldung ohne dass ich die Methode GetCurSel aufgerufen hätte. Grüße
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.