mikrocontroller.net

Forum: PC-Programmierung Zeiger auf view


Autor: Diplomand (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.