Zum Inhalt springen

Listbox von anderem Dialog füllen || Dialog nicht modal aufrufen


Comroader

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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]

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...