创建 EMF 文件, 并同时绘制在窗体.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); const Path = 'C:\Temp\MyMetaFile.emf'; var MetaFileDC: HDC; {EMF 画布句柄} HMetaFile: HENHMETAFILE; {EMF 文件句柄} begin MetaFileDC := CreateEnhMetaFile(0, PChar(Path), nil, nil); Ellipse(MetaFileDC, 10, 10, 100, 60); HMetaFile := CloseEnhMetaFile(MetaFileDC); {在窗体上按原始大小绘制 EMF} PlayEnhMetaFile(Canvas.Handle, HMetaFile, Rect(10,10,100,60)); DeleteObject(MetaFileDC); DeleteEnhMetaFile(HMetaFile); end; end.