Graphics.AddMetafileComment(Byte[]) 方法   
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
向当前 Metafile添加注释。
public:
 void AddMetafileComment(cli::array <System::Byte> ^ data);public void AddMetafileComment(byte[] data);member this.AddMetafileComment : byte[] -> unitPublic Sub AddMetafileComment (data As Byte())参数
- data
- Byte[]
包含注释的字节数组。
示例
下面的代码示例旨在与 Windows 窗体一起使用,它需要 PaintEventArgse,这是 Paint 事件处理程序的参数,以及 thisForm示例的 Form。 该代码执行以下操作:
- 创建临时 Graphics 以创建图元文件,并获取其设备上下文的句柄 - hdc。
- 使用 - hdc创建新的图元文件。
- 将矩形绘制到图元文件。 
- 向图元文件添加注释。 
- 释放图元文件 Graphics,这将关闭图元文件。 
- 释放图元文件。 
- 释放临时 - hdc。
- 释放临时 Graphics。 
- 从之前创建的文件创建第二个图元文件。 
- 将图元文件绘制到屏幕。 
- 释放图元文件。 
private:
   [SecurityPermission(SecurityAction::Demand, Flags = SecurityPermissionFlag::UnmanagedCode)]            
   void AddMetafileCommentBytes( PaintEventArgs^ e )
   {
      // Create temporary Graphics object for metafile
      //  creation and get handle to its device context.
      Graphics^ newGraphics = this->CreateGraphics();
      IntPtr hdc = newGraphics->GetHdc();
      // Create metafile object to record.
      Metafile^ metaFile1 = gcnew Metafile( "SampMeta.emf",hdc );
      // Create graphics object to record metaFile.
      Graphics^ metaGraphics = Graphics::FromImage( metaFile1 );
      // Draw rectangle in metaFile.
      metaGraphics->DrawRectangle( gcnew Pen( Color::Black,5.0f ), 0, 0, 100, 100 );
      // Create comment and add to metaFile.
      array<Byte>^metaComment = {(Byte)'T',(Byte)'e',(Byte)'s',(Byte)'t'};
      metaGraphics->AddMetafileComment( metaComment );
      // Dispose of graphics object.
      delete metaGraphics;
      // Dispose of metafile.
      delete metaFile1;
      // Release handle to temporary device context.
      newGraphics->ReleaseHdc( hdc );
      // Dispose of scratch graphics object.
      delete newGraphics;
      // Create existing metafile object to draw.
      Metafile^ metaFile2 = gcnew Metafile( "SampMeta.emf" );
      // Draw metaFile to screen.
      e->Graphics->DrawImage( metaFile2, Point(0,0) );
      // Dispose of metafile.
      delete metaFile2;
   }
private void AddMetafileCommentBytes(PaintEventArgs e)
{
    // Create temporary Graphics object for metafile
    //  creation and get handle to its device context.
    Graphics newGraphics = this.CreateGraphics();
    IntPtr hdc = newGraphics.GetHdc();
             
    // Create metafile object to record.
    Metafile metaFile1 = new Metafile("SampMeta.emf", hdc);
             
    // Create graphics object to record metaFile.
    Graphics metaGraphics = Graphics.FromImage(metaFile1);
             
    // Draw rectangle in metaFile.
    metaGraphics.DrawRectangle(new Pen(Color.Black, 5), 0, 0, 100, 100);
             
    // Create comment and add to metaFile.
    byte[] metaComment = {(byte)'T', (byte)'e', (byte)'s', (byte)'t'};
    metaGraphics.AddMetafileComment(metaComment);
             
    // Dispose of graphics object.
    metaGraphics.Dispose();
             
    // Dispose of metafile.
    metaFile1.Dispose();
             
    // Release handle to temporary device context.
    newGraphics.ReleaseHdc(hdc);
             
    // Dispose of scratch graphics object.
    newGraphics.Dispose();
             
    // Create existing metafile object to draw.
    Metafile metaFile2 = new Metafile("SampMeta.emf");
             
    // Draw metaFile to screen.
    e.Graphics.DrawImage(metaFile2, new Point(0, 0));
             
    // Dispose of metafile.
    metaFile2.Dispose();
}
Private Sub AddMetafileCommentBytes(ByVal e As PaintEventArgs)
    ' Create temporary graphics object for metafile
    ' creation and get handle to its device context.
    Dim newGraphics As Graphics = Me.CreateGraphics()
    Dim hdc As IntPtr = newGraphics.GetHdc()
    ' Create metafile object to record.
    Dim metaFile1 As New Metafile("SampMeta.emf", hdc)
    ' Create graphics object to record metaFile.
    Dim metaGraphics As Graphics = Graphics.FromImage(metaFile1)
    ' Draw rectangle in metaFile.
    metaGraphics.DrawRectangle(New Pen(Color.Black, 5), 0, 0, 100, 100)
    ' Create comment and add to metaFile.
    Dim metaComment As Byte() = {CByte("T"), CByte("e"), CByte("s"), _
    CByte("t")}
    metaGraphics.AddMetafileComment(metaComment)
    ' Dispose of graphics object.
    metaGraphics.Dispose()
    ' Dispose of metafile.
    metaFile1.Dispose()
    ' Release handle to scratch device context.
    newGraphics.ReleaseHdc(hdc)
    ' Dispose of scratch graphics object.
    newGraphics.Dispose()
    ' Create existing metafile object to draw.
    Dim metaFile2 As New Metafile("SampMeta.emf")
    ' Draw metaFile to screen.
    e.Graphics.DrawImage(metaFile2, New Point(0, 0))
    ' Dispose of metafile.
    metaFile2.Dispose()
End Sub
注解
仅当此 Graphics 与 Metafile关联时,此方法才有效。