Editing an Enhanced Metafile
To edit a picture stored in an enhanced metafile, an application must perform the following tasks.
-
Use hit-testing to capture the cursor coordinates and retrieve the position of the object (line, arc, rectangle, ellipse, polygon, or irregular shape) that the user wants to alter.
-
Convert these coordinates to logical (or world) units.
-
Call the EnumEnhMetaFile function and examine each metafile record.
-
Determine whether a given record corresponds to a GDI drawing function.
-
If it does, determine whether the coordinates stored in the record correspond to the line, arc, ellipse, or other graphics element that intersects the coordinates specified by the user.
-
Upon finding the record that corresponds to the output that the user wants to alter, erase the object on the screen that corresponds to the original record.
-
Delete the corresponding record from the metafile, saving a pointer to its location.
-
Permit the user to redraw or replace the object.
-
Convert the GDI functions used to draw the new object into one or more enhanced-metafile records.
-
Store these records in the enhanced metafile.