MetaFile generieren



  • Hallo zusammen !

    Hat jemand vielleicht ein Code-Beispiel für die Generierung eines MetaFiles und dessen Abspeicherung auf einen Datenträger?

    Danke im voraus, MacReeg.



  • Wenn du dir mal die CMetaFile-Klasse aus den MFC's anguckst brauchst du kein Codebeispiel. Die ist echt kinderleicht zu benutzen...(Hat aber leider nen kleinen Bug wenn du ein Metafile in ein Preview-DC zeichnen willst... seit 1993 um den dreh ist der bekannt und noch immer nicht behoben!?!?!?!) Ich würde aber mit einem EMF (enhanced-metafile) anstatt WMF arbeiten. Du erstellst dir nen MetafileDC, gibst den Dateinamen an, zeichnest darein und feddisch.



  • Hier hab ich dir schnell mal ein Beispiel gemacht (dürfte auch so funktionieren, habs leider nicht getestet 🙄 )

    // MetafileDC erstellen
    CMetaFileDC* pMDC = new CMetaFileDC;
    CRect rcBounds(0,0,640,480);
    CString strDescription("<<Programmname>>\0<<Bildname>>\0\0,");
    pMDC->CreateEnhanced(
       pDC,             // Referenz-DC
       "C:\\test.emf",  // Dateiname (NULL wenn Speicherdatei)
       &rcBounds,       // Rechteck für die Größe des MetaFileDC's
       strDescription); // Beschreibender String für die Metafile
    
    // ... hier normalen Zeichencode einfügen
    
    // Datei schließen und Handle auf das Metafile erhalten
    HENHMETAFILE hEMF = pMDC->CloseEnhanced();
    
    // Wenn gewünscht jetzt das Metafile in dem BildschirmDC abspielen
    pDC->PlayMetaFile(hEMF, &rcBounds);
    
    // Handle auf das Metafile löschen
    ::DeleteEnhMetaFile(hEMF);
    
    // DC löschen
    delete pMDC;
    

    Wär doch was für die FAQ, oder??? 🙂

    [ Dieser Beitrag wurde am 16.01.2003 um 09:24 Uhr von MaSTaH editiert. ]


Anmelden zum Antworten