Comroader Geschrieben 3. Januar 2002 Geschrieben 3. Januar 2002 Hey, Ich hab zur Zeit zwei Probleme, einerseits weiß ich nicht wie ich einen Dialog nicht modal aufrufe, andererseits kann ich wenn ich einen Button von einem Dialog klicke eine Listbox in einem anderem Dialog nicht füllen. Bitte um schnelle Hilfe !!! P.S: Ich verzweifle mit der MFC ): THX
mst Geschrieben 3. Januar 2002 Geschrieben 3. Januar 2002 1. Nicht-Modale Dialoge: Normalerweise rufst du einen Dialog mit DoModal() auf. Aber das geht hier nicht. Du musst erst das Fenster mit ]m_pDialog = new CMyDialog erstellen und dann die Create()-Funktion aufrufen. Beim Beenden des Dialogs mußst du natürlich noch den Speicher wieder freigeben (mit delete). Das kann man auch in der Funktion PostNcDestroy() der Dialog-Klasse machen (mit delete this). In der MSDN ist auch ein gutes Beispiel zu Nicht-Modalen-Dialogen 2. Das Problem mit der Listbox verstehe ich nicht. Wenn du die Funktion des Buttons hast OnBtnClick() wie auch immer und da drin der Listbox Elemente hinzufügst mit AddString() müßte das doch eigentlich funktionieren, oder nicht? Ich hoffe, dass ich dir wenigestens etwas helfen konnte. Original geschrieben von Comroader Hey, Ich hab zur Zeit zwei Probleme, einerseits weiß ich nicht wie ich einen Dialog nicht modal aufrufe, andererseits kann ich wenn ich einen Button von einem Dialog klicke eine Listbox in einem anderem Dialog nicht füllen. Bitte um schnelle Hilfe !!! P.S: Ich verzweifle mit der MFC ): THX [/quote
Klotzkopp Geschrieben 3. Januar 2002 Geschrieben 3. Januar 2002 Original geschrieben von mst 2. Das Problem mit der Listbox verstehe ich nicht. Wenn du die Funktion des Buttons hast OnBtnClick() wie auch immer und da drin der Listbox Elemente hinzufügst mit AddString() müßte das doch eigentlich funktionieren, oder nicht? So wie ich Comroader verstanden habe, soll der Button einen anderen Dialog öffnen, und der hat eine Listbox. @Comroader: Schreib in der ersten Dialogklasse (die mit dem Button) eine Methode, die Listbox füllt, und ruf diese aus der OnInitDialog der anderen Dialogklasse (die mit der Listbox) auf. Dazu muss sich die zweite Dialogklasse einen Zeiger auf die erste merken: class CDlg1 { void FillListBox( CDlg2* pDlg2 ) { // pDlg2->m_ctlListBox->AddString... } void OnButtonXY() { CDlg2 dlg; dlg.m_pDlg1 = this; dlg.DoModal(); } }; class CDlg2 { CDlg1* m_pDlg1; CListBox m_ctlListBox; virtual BOOL OnInitDialog() { // ... m_pDlg1->FillListBox( this ); // ... } }; [/CODE]
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden