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

请参见

参考

Metafile 类
Metafile 成员
System.Drawing.Imaging 命名空间