Zugriff auf Viewklasse



  • Hallo Leute,

    ich habe eine SDI Anwendung deres Basisklasse FormView ist.
    In der ErkautoDoc (Erkauto = Progname) habe ich einen
    Pointer definiert

    CErkautoView* m_pMyView;

    mit dem ich in der ErkautoDoc Klasse auf Variablen der ErkautoView Klasse
    zugreifen will.

    Definition des Pointers.

    class CErkautoView; //Vorwärtsdeklaration

    class CErkautoDoc : public COleDocument
    {
    ..
    CErkautoView* m_pMyView;
    ..
    }

    Die Header habe ich soweit eingebunden, kompilieren lässt sich das Ganze
    auch, nur der Pointer zeigt ins Leere ich kann auf keine der Variablen zugreifen.
    Wäre dankbar für Hilfe bin leider noch ein Anfänger 😕 in Sachen MFC.

    Aileron



  • Da für ein Dokument unterschiedliche Ansichten existieren können, wäre es Quatsch, innerhalb des Dokuments auf eine Ansicht zuzugreifen, da es ja nicht weiss, um welche es sich handelt.



  • Es gibt ja nur eine Ansicht da es eine SDI Anwendung ist deren
    Basisklasse ja FormView ist, oder steh ich damit auf dem Schlauch ?

    class CErkautoView : public FromView
    {
    ..
    int m_iOGrenze;
    int m_iUGrenze;
    ..
    }

    In der ErkautoDoc Klasse wollte ich dann mit Hilfe des Pointers
    darauf zugreifen

    iOgrenze = m_pMyView->m_iOGrenze;

    Aileron

    Aileron



  • SDI heisst Single Document und nicht Single View. Nur in Deinem Konstrukt ist es ein Single View. Es gibt aber keinen unumgänglichen Grund, innerhalb eines Dokuments auf das View zugreifen zu müssen. Schliesslich muss man innerhalb einer Word-Datei auch nicht auf die Festplatte zugreifen, auf der diese Datei liegt.



  • Das heisst also es ist so nicht möglich
    von der ErkautDoc-Klasse auf Elemente der ErkautoView-Klasse
    zuzugreifen. Gibt es noch einen anderen Weg?

    Aileron



  • Speicher die Daten direkt im Dokument



  • Ja, Ok das habe ich verstanden.
    Das Problem ist nur ich hol mir die Daten aus einem anderen
    Dialog den ich aus ErkautoView aufrufe und die ich in ErkautoDoc
    weitervearbeiten muss.

    ErkautoView holt die Daten aus den Dialogen und gibt sie weiter
    an ErkautoDoc wo Sie weiterverarbeitet werden.

    Aileron



  • Das Problem ist nur ich hol mir die Daten aus einem anderen
    Dialog den ich aus ErkautoView aufrufe

    Dann ruf doch den Dialog aus ErkautoDoc auf.



  • Original erstellt von Aileron:
    **Ja, Ok das habe ich verstanden.
    Das Problem ist nur ich hol mir die Daten aus einem anderen
    Dialog den ich aus ErkautoView aufrufe und die ich in ErkautoDoc
    weitervearbeiten muss.

    ErkautoView holt die Daten aus den Dialogen und gibt sie weiter
    an ErkautoDoc wo Sie weiterverarbeitet werden.

    Aileron**

    Na so rum gehts doch auch ohne Probleme. (!?)
    Und am Ende der Verarbeitung sollte ErkautoDoc ein UpdateAllViews aufrufen.
    Damit bekommt die View die Gelegenheit dem aktualisierten Zustand des Doc wiederzugeben.


Anmelden zum Antworten