Ich habe einen Dialog aufgemacht und habe dort eine ListBox als Steuerelement reingehauen nun möchte ich diese Ansprechen. dazu habe ich ne Membervariable gemacht und sie als listbox über die IDC_Tab dafür Deklariert.
Soweit so gut. ich kann denn Dialog aufrufen und alles ist in butter aber wenn ich was in die Membervariable was setzen will mit m_Tab.AddString("ich Idiot") Dann gibt es eine Error Meldung. Muss ich die Vorher noch Setzen oder was
Danke für hilfe
Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge
eigentlich muss man sonst nichts machen - daher nehme ich an das du was falsch gemacht hast. was - das koennte man vermutlich beantworten wenn du den inhalt der fehlermeldung gepostet haettest.
WM_FYI
thomas woelfer
hey danke für die schnelle Antwort ich bin im Moment nicht zuhause deswegen kommt später die Meldung.
Ich kann erst nachdem ich den Dialog mit der Listbox mit domodal sichtbar gemacht habe auf die listbox zugreifen mit m_Tab.AddString("ich schwachkopf") ohnen das mein Program abstürtzt.
ich wollte noch mal sagen das ich im Assistenten die m_Tab variable So definiert habe das ich Wert in Control und String in ListBox umgewandelt habe. du meinst ja das ist richtig.
Danke
>Ich kann erst nachdem ich den Dialog mit der Listbox mit domodal
>sichtbar gemacht habe auf die listbox zugreifen
Du willst also das, bevor der Dialog sichtbar ist, der Listbox schon Elemente zugewiesen werden? Erkläre doch mal den Sinn des Dialogs bzw. der Listbox!
vieleicht mach ich ja nen gedanken fehler aber ich deklarierer denn dialog
dann setze ich parameter: ne textausgabe="ich habs Gewust", 2 verschiedene schlaltfeler mit hacken(True,False), ein eingabefeld=0 und ne Listbox=(0..14) 15 Werten die man einstellen kann so hab ich mir das gedacht dazu muss ich nur nach der Deklaration eine Definition setzen (kleiner Scherz siehe unten) und erst dann darf ich diese DoModal aufrufen weil erst dann die Variablen einen Wert haben.
ist das Falsch gedacht dann wär ich froh. denn Irgentwo stimmt es ja nicht.
danke
Danke nach dieser Post habe ich mein Problem gelöst hilft halt manchmal mit anderen zu reden un dann zu sehen das mann immer noch nicht so genau weis was mann tut auch wenn man das schon ne ganze weile tut ich muss diese denfinition natürlich in oninitDailog tun
somit steht da jetzt m_Tab.AddString("danke für eure hilfe sie war echt nötig");
ich nehme mal an du versuchst in etwa folgendes:
void CChildView::OnBox1()
{
CListBoxDlg dlg;
dlg.m_Tab.AddString("Bla Bla");
if (dlg.DoModal() == IDOK)
{
}
}
und das gibt beim Init des Dialogs eine Assertion!
Wie T.W. schon schrieb, fülle die Listbox im 'InitDiolog' des Dialogs in dieser Art:
BOOL CListBoxDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_Tab.AddString("Bla Bla");
return TRUE;
}
wie gesagt waere es hilfreich wenn du die fehlermeldung nennen wuerdest.
davon ab vermute ich das du versuchts AddString() aufzurufen, bevor OnInitDialog() durchgelaufen ist - zu diesem zeitpunkt existiert das windows control aber noch gar nicht. iow: wenn du was in der listbox eintragen willst das 'von anfang an' drin steht, das muss das in deiner implementierung von OnInitDialog() passieren.
WM_HOPETHISHELPS
thomas woelfer