C???Doc in C???App ansteuern



  • ich hab mal wieder ein problem... ich möchte meine documentenklasse bereits in meiner C???App::InitInstance() funktion ansteuern... bis jetzt hab ich es nicht hinbekommen? geht das überhaupt?

    beim starten der anwendung wird ein dialog angezeigt welcher die anwendung einstellen soll. das ich keinen anderen weg gefunden habe, die daten zu übergeben, wollte ich nun den weg über die dokumentenklasse gehen.



  • EDIT:

    es wäre sogar noch optimaler, wenn ich von dort auf meine view-klasse zugreifen könnte.


  • Administrator

    Speichere doch die Daten in deine CWinApp Klasse und rufe sie dann, wenn deine View oder dein Doc gestartet wird, einfach ab. Um einen Zeiger auf deine CWinApp-Klasse zu bekommen, kannst du folgende Funktion benutzen:

    AfxGetApp();
    

    Grüssli



  • @Backus:
    Wie willst du einen Zeiger auf etwas bekommen, das garnicht existiert? Das geht nunmal nicht.

    D.h. könntest du bsw. deiner C???App eine Membervariable protected hinzufügen. Dann schreibst du einen Getter. Nun willst du ja beim erstellen der View direkt was verändert... also überschreiben wir die WM_CREATE ... und Holen uns wie Dravere schon sagte einen Pointer auf unser C???App Objekt. Das geht auch mit AfxGetApp()... du musst es halt dann nurnoch casten. Dann kannst du dir per Getter auf die gewünschte Variable zugreifen... FERTIG 🙂



  • so weit... so gut

    ich brauche in der CMainFrame-Klasse einen Zeiger/Zugriffsmöglichkeit auf mein C???View-Objekt... wie stell ich das nu wieder an? 😕


  • Administrator



  • Hab keine lusst das anzugucken 😃 Also... es sollte eigentlich GetActiveView reichen....


  • Administrator

    (D)Evil schrieb:

    Hab keine lusst das anzugucken 😃 Also... es sollte eigentlich GetActiveView reichen....

    Schau dir das ruhig an. Das sind zwei Links mit hilfreichen zusammenstellungen, wie man wo welche Dinge bekommen kann, bei einem MDI bzw. SDI. Auch wenn man es schon weiss, kann es manchmal nützlich als Stütze sein 😉
    Ich empfehle diese Links auf jedenfall (oder zumindest der von Codeguru) in den Favoriten zu speichern als MFC-Programmierer in Sachen MDI und SDI ^^

    *sich so vorkommt, als wollte er als Schüler einen Lehrer belehren* 😃

    Grüssli



  • Hmm... nope... du belehrst mich nicht... wenn es der Link ist, wo steht wie man aus den einzellnen Klassen eines Doc View Modells in die andere kommt... hab ich schon seid Jahren in den Favs 😉


  • Mod

    (D)Evil schrieb:

    Hab keine lusst das anzugucken 😃 Also... es sollte eigentlich GetActiveView reichen....

    Das würde nur gehen, wenn es eine SDI Applikation ist.

    @Backus: Warum benötigst Du diese Querverbindungen? Normalerweise werden diese Informationen nicht/selten benötigt. Die Konzepte von Frame/Doc/View sollten autark gehalten werden.
    Evtl. hast Du Dich in einem Designfehler verfangen.


Anmelden zum Antworten