Datei öffnen bei Programmstart/Kommandozeile (Anwendungsassistent)
-
Anzeigegrößen Auswahl? Gehört in den View?
Es gibt alle diese Events CMainFrame/CView::OnCreate, CView::OnInitialUpdate.
Die Frage ist nur was paltziert man wohin und das ist die Crux bei Dir....
-
So wie ich gelesen habe gehört alles was mit einer alternativen Ansicht des selben Dokuments zu Tun hat ins View?
Ich versuchte eben die OnCreate-Methode hinzuzufügen auf WM_Create. Nun meldet mir Visual Studio "Hinzufügen/entfernen nicht möglich da das Codeelement.... schreibgeschützt ist"
-
Keine Ahnung. Setzt Du Source COntrol ein?
Im CView ist OnInitialUpdate der richtige Ansatz. OnCreate wäre wirklich nur für Basis-Dinge wichtig.
-
Vielen Dank; ja in der InitialUpdate hatte ich den Code schonmal und das gab auch eine Zugriffsverletzung; aber wahrscheinlich habe ich da einen Fehler drin. Die Dokumentklasse sollte ja von dort aus zugänglich sein und das Paint-Ereignis wird nacher ausgelöst.
-
Source Control kenne ich gar nicht, nein; ist das ein Dokumentations/Überprüfungswerkzeug?
-
Dann zeig mal Code.
Source Control Systeme verwalten den Sourcecode und bieten Versionierung und Historien an. Erlauben meistens auch ein Arbeiten im Team am Code.
-
Der Code welcher ausgeführt werden sollte wäre dieser:
CEMFBetrachter_MFCDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; HENHMETAFILE H; H=GetEnhMetaFile(pDoc->GetPathName()); (((CMainFrame *)AfxGetMainWnd())->hMFile)=H; ENHMETAHEADER Metaheader; GetEnhMetaFileHeader(H, sizeof(ENHMETAHEADER), &Metaheader); (((CMainFrame *)AfxGetMainWnd())->MFileHeader)=Metaheader; (((CMainFrame *)AfxGetMainWnd())->viertelgr)=true; (((CMainFrame *)AfxGetMainWnd())->Originalgr)=false; (((CMainFrame *)AfxGetMainWnd())->Fenstergr)=false;
Irgendwie kann ich keine Funktionen hinzufügen und OnInitialUpdate ist nicht vorhanden.
Ach so, danke. Nein so etwas verwende ich nicht
-
Jetzt hat's geklappt! Heute ging die Überschreibung von OnInitialUpdate und darin habe ich den Code jetzt und läuft. Jetzt lässt sich das Programm sinnvoll verwenden.
Danke !
-
C. M. Obrecht schrieb:
CEMFBetrachter_MFCDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; HENHMETAFILE H; H=GetEnhMetaFile(pDoc->GetPathName()); (((CMainFrame *)AfxGetMainWnd())->hMFile)=H; ENHMETAHEADER Metaheader; GetEnhMetaFileHeader(H, sizeof(ENHMETAHEADER), &Metaheader); (((CMainFrame *)AfxGetMainWnd())->MFileHeader)=Metaheader; (((CMainFrame *)AfxGetMainWnd())->viertelgr)=true; (((CMainFrame *)AfxGetMainWnd())->Originalgr)=false; (((CMainFrame *)AfxGetMainWnd())->Fenstergr)=false;
Merke: Wenn Du soviele Cast zum Zugriff auf andere Objekte benötigst ist etwas grundsätzlich falsch!
Warum stehen diese Daten/Objekte nicht im View!
-
Ja das ist mir klar. Ich hatte bloss Mühe mit dem globalen Deklarieren und bin dann im Internet darauf gestossen es so zu tun... Wie könnte ich so eine Variable normal im View deklarieren? In C# wäre mir klar wie, aber die Doc/View-Architektur wollte es nicht so wie ich...
Das Programm habe ich in Assembler zuerst geschrieben und dort ist es fast so gross wie die Casts alleine
Allerdings kann diese Version nicht zu BMP konvertieren.
-
mammamia;
-
jtsfds283 schrieb:
mammamia;
biste jetzt der große guru, der da shinbekommt Restpeckt, so viel dummheit auf einen haufen ahb ich auch noch net gesehen. Ich bin mal wieder dafür dass das Forum für unregistrierte geschlossen wird.
MFG Matthias