![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вызвать 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 ?