Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

MFC Visual C++5.0 Listbox in einem Dialog

(Anonym) / 7 Antworten / Baumansicht Nickles

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

bei Antwort benachrichtigen
thomas woelfer (Anonym) „MFC Visual C++5.0 Listbox in einem Dialog“
Optionen

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

this posting contains no tpyos.
bei Antwort benachrichtigen
(Anonym) thomas woelfer „eigentlich muss man sonst nichts machen - daher nehme ich an das du was falsch...“
Optionen

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

bei Antwort benachrichtigen
Ben Horne (Anonym) „hey danke für die schnelle Antwort ich bin im Moment nicht zuhause deswegen...“
Optionen

>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!

bei Antwort benachrichtigen
(Anonym) Ben Horne „ Ich kann erst nachdem ich den Dialog mit der Listbox mit domodal sichtbar...“
Optionen

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

bei Antwort benachrichtigen
(Anonym) Nachtrag zu: „vieleicht mach ich ja nen gedanken fehler aber ich deklarierer denn dialog dann...“
Optionen

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");

bei Antwort benachrichtigen
Ben Horne (Anonym) „vieleicht mach ich ja nen gedanken fehler aber ich deklarierer denn dialog dann...“
Optionen

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;
}

bei Antwort benachrichtigen
thomas woelfer (Anonym) „hey danke für die schnelle Antwort ich bin im Moment nicht zuhause deswegen...“
Optionen

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

this posting contains no tpyos.
bei Antwort benachrichtigen