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 DialogDann irgendwo in einer Funktion
m_pDoc->var1 = 14....Grüße
BOA
-
ich habe jetzt im Dialog die DOC.h eingebunden und
mitCMeinProjektDoc* pDoc;den Zeiger erstellt.
Aber ausrichten muss ich ihn ja dann mitpDoc=(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