Редактирование расширенного метафайла
Чтобы изменить рисунок, хранящийся в расширенном метафайле, приложение должно выполнять задачи, описанные в следующей процедуре.
Изменение рисунка, хранящегося в расширенном метафайле
- Используйте тестирование попаданий, чтобы записать координаты курсора и получить положение объекта (линия, дуга, прямоугольник, многоточие, многоугольник или нерегулярная фигура), которую пользователь хочет изменить.
- Преобразуйте эти координаты в логические (или мировые) единицы.
- Вызовите функцию EnumEnhMetaFile и проверьте каждую запись метафайла.
- Определите, соответствует ли данная запись функции рисования GDI.
- Если это происходит, определите, соответствуют ли координаты, хранящиеся в записи, линии, дуги, эллипса или другого графического элемента, который пересекает координаты, указанные пользователем.
- При поиске записи, соответствующей выходным данным, которые пользователь хочет изменить, удалите объект на экране, соответствующий исходной записи.
- Удалите соответствующую запись из метафайла, сохранив указатель на его расположение.
- Разрешить пользователю перерасписывать или заменять объект.
- Преобразуйте функции GDI, используемые для рисования нового объекта в одну или несколько записей расширенного метафайла.
- Сохраните эти записи в расширенном метафайле.