下面这段代码 导出WMF文件,用 Windows 操作系统自带的画图软件和Office Picture软件打开WMF文件,都能正常显示图形的brush填充。但是用 Corel Paint Shop Pro Photo X2 这个软件打开时wmf文件时,填充变成实心了。望各朋友赐教。谢谢。
procedure TForm1.Button1Click(Sender: TObject);
var
MetaFile: TMetaFile;
MFCanvas: TMetaFileCanvas;
MyRgn: HRGN;
p:ARRAY OF TPoint;
begin
setlength(p,4);
p[0]:=Point(10,10);
p[1]:=Point(100,10);
p[2]:=Point(100,100);
p[3]:=Point(10,100); MetaFile := TMetaFile.Create;
try
MetaFile.Height := Self.Height;
MetaFile.Width := Self.Width;
MFCanvas := TMetafileCanvas.Create(MetaFile,0);
try
MFCanvas.Brush.Color:=clRed;
MFCanvas.Brush.Style:=bsVertical;
MFCanvas.Pen.Color :=clGreen;
MFCanvas.Pen.Width := 2; MFCanvas.Rectangle(250,250,200,200);
MFCanvas.Brush.Color:=clBlue; MyRgn := CreatePolygonRgn(PPoint(p)^, 4, WINDING);
FillRgn(MFCanvas.Handle, MyRgn, MFCanvas.Brush.Handle);
DeleteObject(MyRgn);
MFCanvas.Polygon(p);
finally
MFCanvas.Free;
END;
MetaFile.SaveToFile('a.wmf');
ShowMessage('aaaaaa');
finally
MetaFile.Free;
END;end;
procedure TForm1.Button1Click(Sender: TObject);
var
MetaFile: TMetaFile;
MFCanvas: TMetaFileCanvas;
MyRgn: HRGN;
p:ARRAY OF TPoint;
begin
setlength(p,4);
p[0]:=Point(10,10);
p[1]:=Point(100,10);
p[2]:=Point(100,100);
p[3]:=Point(10,100); MetaFile := TMetaFile.Create;
try
MetaFile.Height := Self.Height;
MetaFile.Width := Self.Width;
MFCanvas := TMetafileCanvas.Create(MetaFile,0);
try
MFCanvas.Brush.Color:=clRed;
MFCanvas.Brush.Style:=bsVertical;
MFCanvas.Pen.Color :=clGreen;
MFCanvas.Pen.Width := 2; MFCanvas.Rectangle(250,250,200,200);
MFCanvas.Brush.Color:=clBlue; MyRgn := CreatePolygonRgn(PPoint(p)^, 4, WINDING);
FillRgn(MFCanvas.Handle, MyRgn, MFCanvas.Brush.Handle);
DeleteObject(MyRgn);
MFCanvas.Polygon(p);
finally
MFCanvas.Free;
END;
MetaFile.SaveToFile('a.wmf');
ShowMessage('aaaaaa');
finally
MetaFile.Free;
END;end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货