Zeiger auf view

Gast #584461
Lesenswert?

Servus,
ich hasse MFC. Soweit so gut

Jetzt zur Sache. Ich habe ein Hauptfenster, bei dem durch Wahl eines 
Menüpunktes ein Dialogfenster geöffnet wird(nicht modal). Dort wähle ich 
ein Datei aus, diese wird kopiert in eine temporäre Datei.

Bis jetzt klappt alles.

Jetzt möchte ich das Hauptfenster aktualisieren. Dazu brauch ich ein 
Zeiger von der OnDblclkAuswahlTREE Methode zum Hauptfenster. Mir geht es 
dabei um ein erneutes Einlesen des Datensatzes, nicht um das neuzeichnen 
des Fensters.

Ich kann das zwar alles in OnPaint ständig neu aktualisieren 
lassen,möchte ich aber nicht.

1. Wie bekomme ich diesen Zeiger auf das Hauptfenster. Ich hab schon 
einiges ausprobiert, bekomme aber nie die richtige Adresse auf den 
Zeiger

2. Gibt es eine Erklärung warum man das so macht, wie man es macht.
Die MSDN Hilfe hat zwar genau so ein Beitrag, der hilft mir aber nicht 
wirklich weiter

Hilfe!
Danke
#584481
Lesenswert?

Wenn man es allerdings getrau der reinen Lehre macht,
dann ist dem Dialog das Hauptfenster aber sowas von egal.

Der Dialog sollte sich eigentlich nur um das Document kümmern.
D.h. Der Dialog gibt dem Document den Befehl (zb. Funktionsaufruf)
die Daten neu einzulesen. Das macht das Document auch und ruft
dann ganz zum Schluß nach dem Einlesen UpdateAllViews auf.

Dadurch ist sichergestellt, das das ganze auch funktioniert
wenn man 25 Views auf ein und dasselbe Document offen hat,
dass sich jeder einzelne schön sauber neu zeichnet, wenn sich
das Document verändert hat. Was es wiederrum tut, weil es
von deinem nicht-modalen Dialog den Auftrag dazu bekommen hat.

Application   = hält alles zusammen
MainForm      = Fenster welches die Applikation symbolisiert
Document      = dort wird alles abgehandelt was mit Datenmanipulation
                zu tun hat
View          = zuständig für die Anzeige und Benutzereingaben
                Nicht zuständig für Datenmanipulationen

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren