![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как создать TMetafileCanvas
SDS © (2003-02-28 16:39:00)Прошу помощи.
Есть проблема, мне нужно нарисовать на метафайле TMetafile графические данные, но TMetafileCanvas создаеться только для конкретного устройства (параметр конструктора constructor TMetafileCanvas.Create(AMetafile: TMetafile; ReferenceDevice: HDC);) мне хотелось бы создать метафайл с определенными размерами, но если создаешь метафайл, вызываешь конструктор TMetafileCanvas.Create, с параметром ReferenceDevice := 0, создаеться меитафайл с размерами экрана, ест ли какой либо выход так чтоб при создании матафайла размеры его устанавливались мной, а также можно ли как либо создать TMetafileCanvas так чтобы результат TMetafileCanvas.ClipRect возвращал результат равный размерам метафайла.
Система Win2000 Prof SP3, заранее спасибо
RBear (2003-04-08 18:16:00) [1]упс, ошибка, нарисуй конечно прямоугольник :)
RBear (2003-04-08 15:20:00) [2]При рисовании на канвасе метафайла нарисуй сначала треугольник, размеры которго будут соответствовать размер области, на которой хочешь рисовать. Дело в том, метафайл является устройствонезависимым и как показывать отдельный метафайл должна заботится сама программа. Поэтому при сохранении метафайла в собственно файле :) просчитывается позиция самой левой, самой правой, самой верхней и самой нижней точки на канвасе. По ним и пишется информация о размере.
Создавать метафайл на основе DC экрана очень даже нормально.
Думаю, если задашь размеры метафайла описанным мною способом, то и ClipRect правильно сработает.