Zum Inhalt springen

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


Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben
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]

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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