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 Zitieren
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 Zitieren
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] Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.