Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как вызвать DPtoLP для точек из метафайла (TMetaFile)?


Pavlik_Morozov ©   (2004-12-29 14:05:00) 

У меня есть метафайл
 procedure LoadFromMetaFile(const AFileName: string);
 var
   MF: TMetafile;
 begin
   MF := TMetafile.Create;
   try
     MF.LoadFromFile(FileName);
     DoMetaFile(MF);// различные действия с метафайлом
   finally
     MF.Free;
   end;
 end;

в котором "нарисованы" линии и при отрисовке использовались регионы отсечения.
Мне необходимо правильно извлечь примитивы из метафайла (в DoMetaFile), но так как LineTo работает в логических координатах, а SelectClipRgnв координатах устройства, то для преобразования региона в логические координаты мне необходимо вызывать функцию DPtoLP, на входе которой HDC... где его взять - непонятно:(
Подскажите, пожалуйста!


Pavlik_Morozov   (2004-12-30 11:01:00) [1]

oops, извиняюсь...
да, TMetafileCanvas.Handleименно HDC, но у меня нет TMetaFileCanvas... есть только TMetaFile, созданный указанным выше способом (т.е. открытый из файла)...
а вызов
 otherMFCanvas := TMetaFileCanvas.Create(MF, 0);
 DPtoLP(otherMFCanvas.Handle, vMyPoint, 1);

не даёт необходимого эффекта (точка не меняется).
Таким образом ещё появляется вопрос, как правильно "извлечь" TMetafileCanvasиз метафайла.


clickmaker   (2004-12-29 19:20:00) [2]


> Pavlik_Morozov   (29.12.04 16:14) [2]
> не - это другое, это не DC

а что это?


Pavlik_Morozov   (2004-12-29 16:14:00) [3]

не - это другое, это не DC


clickmaker   (2004-12-29 15:56:00) [4]


> на входе которой HDC... где его взять - непонятно

TMetafileCanvas.Handle ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо