Brauche Hilfe bei GDI+ und MetaFiles (RemovePropertyItem)



  • Moin!

    Ich muss auf der Arbeit an einer Wrapper-DLL für GDI+ arbeiten (damit aus LabView heraus ansprechbar). Mir wurde gesagt, dass es bei Metafiles die Möglichkeit gibt, einzelne Elemente (oder vielleicht Zeichenschritte) wieder zu löschen. So könnte man den letzten oder auch einen beliebigen Schritt wieder rückgängig machen.

    Leider finde ich dazu im Internet rein gar nichts (und ich habe ohne Ende gesucht!). Meine Vermutung war, dass die Methode RemovePropertyItem das Richtige wäre, da es gar keine anderen Methoden gibt, deren Name ("Remove...") auf das Löschen von Elementen hindeutet.

    Die MSDN beschreibt ein PropertyItem als "piece of metadata". Ist damit also beispielsweise ein gezeichnetes Rect oder eine Line gemeint, dass ich einzeln löschen kann?

    Das ist mein einziger Anhaltspunkt. Jedoch führen meine Tests immer dazu, dass GetPropertyCount Null liefert, obwohl eigentlich schon etwas gezeichnet sein müsste. Ich halte es jedoch auch für möglich, dass meine bescheidenen (bzw. quasi nicht vorhandenen) LabView-Kenntnisse dafür sorgen, dass ich irgendetwas falsch mache.

    Deshalb wäre es nett, wenn jemand mir sagen könnte, ob ich mit RemovePropertyItem auf dem richtigen Weg bin. Und falls nicht, wofür diese Funktion denn gut ist.

    Danke!

    Gruß Matze



  • Ich bin mittlerweile so weit, dass ich denke, die Funktionen EnumEnhMetaFile EnhMetaFileProc könnten des Rätsels Lösung sein. In der MSDN gibt es aber nur eine simple Auflistung von Arbeitsschritten (http://msdn2.microsoft.com/en-us/library/ms534582.aspx). Es wird nicht beschrieben, wie der Code auszusehen hat.

    Beispiel:

    Delete the corresponding record from the metafile, saving a pointer to its location.

    Wie soll ich denn den Record löschen?? Wie heißt die Funktion?

    Hat jemand schon mal erfolgreich einen Record aus einem Metafile gelöscht? Wenn ja, wäre ich für kleines ein Beispiel dankbar.

    Gruß Matze


Anmelden zum Antworten