Menü in Mainframe - Daten in der Doc - Klasse?



  • Hallo,
    ich habe folgendes Problem, wenn es überhaupt eins ist:
    Ich habe mir einen Menüpunkt erstellt, der ein Dialogfenster öffnen soll. Das dumme ist nur, dass die Menüfunktion

    ... 
    ONMeinMenuePunkt() 
    ...
    

    in dieser Funktion wird der Dialog aufgerufen und wenn er geschlossen ist habe ich die Daten ja über dialogvariable.datenname vorhanden. Wie kann ich diese Daten ohne große Umwege in die Doc Klasse bringen - wo meine eigentlichen Daten gespeichert sind.

    Schon jetzt: Danke für schnelle Hilfe.

    🙂



  • Aloha,

    da ich nicht genau weiß, wie Deine Dialog in der

    OnmeinMenupunkt()
    

    aufgerufen wird, schlage ich mal so ins Blaue folgendes vor.

    Onmeinmenupunkt liegt ja sicherlich in der Mainframe.

    Ermittle Dir nen Zeiger auf CDeinProjektDoc-Klasse, indem Du von einer Deiner Views einfach

    CDeinProjektDoc *p_doc = (CDeinProjektDoc*)CDeinView->GetDocument()
    

    und übergib ihn dem Konstruktor vom Dialog.

    CMeinDialog(p_doc);
    

    Natürlich mußt Du noch den Konstruktor dementsprechend anpassen.

    Dann kannst Du wunderbar Werte für Deine Variablen setzen im Dialog.

    p_doc->var1 = 15;
    p_doc->var2 = 35;
    ...
    

    Grüße

    BOA



  • Wenn der Handler Dokument-Spezfisch ist, solltest du ihn auch dem Dokument zuordnen.



  • [edit] grrch doppelmoppel [/edit]



  • BOA:
    Der Dialog wird mit xyz.DoModal() aufgerufen.
    Das soll dann mal auf IDOK abgetestet werden.

    Das mit dem Zeiger funzt so nicht richtig - eigentlich gar nicht.
    Vielleicht bin ich auch nur schwer von Begriff!

    Vielleicht noch jemand eine Idee?



  • Aloha,

    was funzt denn net, an welcher Stelle ?

    Der Quelltext sollte richtig gut gehen... 🙂

    Grüße

    BOA

    P.S.: der p_doc->var1 ist natürlich eine Membervariable von Deinem Dialog. ISt schlecht gewählt gewesen von mir.

    Besser :

    #include "meinprojectdoc.h"  
    ...
    CDeinProjectDoc *m_pDoc;   <--- Member im Dialog
    

    Dann irgendwo in einer Funktion

    m_pDoc->var1 = 14....
    

    Grüße

    BOA



  • ich habe jetzt im Dialog die DOC.h eingebunden und
    mit

    CMeinProjektDoc* pDoc;
    

    den Zeiger erstellt.
    Aber ausrichten muss ich ihn ja dann mit

    pDoc=(CMeinProjekt*)CMeinProjektView::GetDocument()
    

    Da kommt dann die Fehlermeldung:
    Keine Klasse oder Namespace 😕

    Ich hoffe, ich nerve nicht, aber das wäre für mich wichtig - fürs Verständnis.

    Danke


Anmelden zum Antworten