CComboBox .. AddString ..
-
In einer Dialogvorlage, habe ich ein Combobox Steuerelement angeordnet.
Dazu habe ich eine zugehörige Klasse mit Namen CMeinDialog erstellt.
Der Combobox gab ich den Variablenname m_combo.
Folgender Text:...Click Handler .. :
CMeinDialog dlg;
dlg.m_combo.AddString("Stringle ..."); //Hier stürtzt das Programm ab, wieso ?
dlg.DoModal();Bei einem ListBox Steuerelement geschied das selbe. Wieso ?
-
Weil Du nur die Wrapper Klasse erzeugt hast. Die Combobox existiert erst nach Aufruf von DoModal. Du kannst Die Box am Besten im OnInitDialog Handler Deines Dialoges füllen.
-
Nochmals zu der DialogBar. Diese erzeuge ich in MainFrame, und enthält,
eine Combobox mit der ID: IDC_COMBO1.In class CMeinFrame:
CDialogBar dbr;
In MainFrame.cpp .. OnCreate .. :
dbr.Create(this, IDD_DIALOG1, CBRS_TOP, 0xE80A);
CComboBox* cmb = (CComboBox*)GetDlgItem(IDC_COMBO1);
cmb.AddString("Stringle ...");Und stürzt ab ...
Die Nachrichten der DialogBar fange ich in CMainFrame ab. In Mainframe
will ich aber auch auf die Steuerelemente zugreifen. Eventuell mit
CComboBox* cmb = (CComboBox*)GetDlgItem(IDC_COMBO1);
Mit der Dialog-Klasse selber möchte ich gar nicht arbeiten.
-
Wenn Du das in Deiner Klasse MeinFrame aufrufst, ist doch klar, warum das abkachelt. Die ComboBox gehört doch gar nicht zu MeinFrame, sondern zur CDialogBar. Wenn überhaupt, dann sowas wie
CComboBox* cmb = (CComboBox*)[b]dbr.[/b]GetDlgItem(IDC_COMBO1);Hier kommt dann allerdings wieder die Argumentation von Martin zum Zuge....
-
Danke! das mit dbr.GetDlgItem .. ging.
Jetzt habe ich noch ein kleines Problem:
Mit dbr->InsertString ... habe ich mehrere Strings in die
Combobox eingefügt. Wenn ich das Programm starte und die
Combobox herunterklappe, erscheint nicht die Liste der Einträge, sondern
eine einzige Zeile mit zwei kleinen Scroll-Fenstern.
Mir ist unklar wie ich das Problem beseitige. Irgendetwas mit den
Eigenschaften der Combobox. Dann gibt es auch noch die CComboBox
Member-Funktion ShowDropDown ...
-
Klick im Resource Editor aufdie Drop Down Box und ziehedas Fenster auf die gewünschte Größe!
-
Vielen Dank! Das hat geklappt!
Ich habe immer ein schlechtes Gewissen, wenn ich weniger Fragen
beantworte als Fragen stelle, es wäre schön wenn ich auch mal helfen
könnte. Warscheinlich kommt die nächste Frage bald ...