Enhanced metafile как превратить в контур ?
От: xception  
Дата: 23.09.05 11:16
Оценка:
Привет.
Существует необходимость перевести содержимое .EMF файла в набор контуров.
Создал рисунок в Adobe illustrator в котором просто строчка текста и экспортировал в .EMF файл.
Для перевода в контур применяю такой код:


    HENHMETAFILE hemf = GetEnhMetaFile(m_file_name.GET()); 

    //draw the text in a memdc
    CDC* p_dc = memdc.GetDC();
    EnumEnhMetaFile(p_dc->m_hDC, hemf, EnhMetaFileProc, 0, CRect());


    CRect rect(0, 0, memdc.GetWidth(), memdc.GetHeight());

    // draw metafile items in a path
    p_dc->BeginPath();
    BOOL res = PlayEnhMetaFile(p_dc->m_hDC, hemf, rect); 
    if (!p_dc->EndPath())
      return false;

    //get rid of the beziers
    p_dc->FlattenPath();

    //how many points are there in the path?
    POINT* p_points = NULL;
    BYTE*  p_types = NULL;
    int count(0);
    count = p_dc->GetPath(p_points, p_types, count);


Здесь count==0 на выходе (
Не понимаю почему, тем более что команды, присутствующие в EMF файле (трейсил по EnumEnhMetaFile) это команды TextOut, которые поддерживаются BeginPath скобкой...

Кроме того, если просто сделать EnumEnhMetaFile на экран то текст нормально показывается (это я так, для справки

Заранее благодарен за идеи
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.