Metafile.PlayRecord 方法
播放单个图元文件记录。
**命名空间:**System.Drawing.Imaging
**程序集:**System.Drawing(在 system.drawing.dll 中)
语法
声明
Public Sub PlayRecord ( _
recordType As EmfPlusRecordType, _
flags As Integer, _
dataSize As Integer, _
data As Byte() _
)
用法
Dim instance As Metafile
Dim recordType As EmfPlusRecordType
Dim flags As Integer
Dim dataSize As Integer
Dim data As Byte()
instance.PlayRecord(recordType, flags, dataSize, data)
public void PlayRecord (
EmfPlusRecordType recordType,
int flags,
int dataSize,
byte[] data
)
public:
void PlayRecord (
EmfPlusRecordType recordType,
int flags,
int dataSize,
array<unsigned char>^ data
)
public void PlayRecord (
EmfPlusRecordType recordType,
int flags,
int dataSize,
byte[] data
)
public function PlayRecord (
recordType : EmfPlusRecordType,
flags : int,
dataSize : int,
data : byte[]
)
参数
- recordType
EmfPlusRecordType 的元素,指定正在播放的图元文件记录的类型。
- flags
指定记录属性的标志集。
- dataSize
记录数据中的字节数。
- data
包含记录数据的字节数组。
示例
下面的代码示例说明如何使用 PlayRecord 方法。
Imports System
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Windows.Forms
' for Marshal.Copy
Imports System.Runtime.InteropServices
Public Class Form1
Inherits Form
Private metafile1 As Metafile
Private metafileDelegate As Graphics.EnumerateMetafileProc
Private destPoint As Point
Public Sub New()
metafile1 = New Metafile("C:\test.wmf")
metafileDelegate = New Graphics.EnumerateMetafileProc(AddressOf MetafileCallback)
destPoint = New Point(20, 10)
End Sub
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
e.Graphics.EnumerateMetafile(metafile1, destPoint, metafileDelegate)
End Sub
Private Function MetafileCallback(ByVal recordType As _
EmfPlusRecordType, ByVal flags As Integer, ByVal dataSize As Integer, _
ByVal data As IntPtr, ByVal callbackData As PlayRecordCallback) As Boolean
Dim dataArray As Byte() = Nothing
If data <> IntPtr.Zero Then
' Copy the unmanaged record to a managed byte buffer
' that can be used by PlayRecord.
dataArray = New Byte(dataSize) {}
Marshal.Copy(data, dataArray, 0, dataSize)
End If
metafile1.PlayRecord(recordType, flags, dataSize, dataArray)
Return True
End Function
Shared Sub Main()
Application.Run(New Form1())
End Sub
End Class
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
// for Marshal.Copy
using System.Runtime.InteropServices;
public class Form1 : Form
{
private Metafile metafile1;
private Graphics.EnumerateMetafileProc metafileDelegate;
private Point destPoint;
public Form1()
{
metafile1 = new Metafile(@"C:\Test.wmf");
metafileDelegate = new Graphics.EnumerateMetafileProc(MetafileCallback);
destPoint = new Point(20, 10);
}
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.EnumerateMetafile(metafile1, destPoint, metafileDelegate);
}
private bool MetafileCallback(
EmfPlusRecordType recordType,
int flags,
int dataSize,
IntPtr data,
PlayRecordCallback callbackData)
{
byte[] dataArray = null;
if (data != IntPtr.Zero)
{
// Copy the unmanaged record to a managed byte buffer
// that can be used by PlayRecord.
dataArray = new byte[dataSize];
Marshal.Copy(data, dataArray, 0, dataSize);
}
metafile1.PlayRecord(recordType, flags, dataSize, dataArray);
return true;
}
static void Main()
{
Application.Run(new Form1());
}
}
平台
Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0