Forum: PC-Programmierung Zeiger auf view


von Diplomand (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das Hauptfenster ist -eigentlich- das Parent des Dialogfensters.

Du könntest es Dir ganz einfach machen, und Deinem Dialog einen Pointer 
auf dieses Fenster mitgeben (so daß Du den Pointer nicht im Dialog 
selbst bestimmen musst), und im OnDblClk-Handler kannst Du dann eine 
geeignete Nachricht an dieses Fenster senden.

Quelltext?

von Karl H. (kbuchegg)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.