Graphics.AddMetafileComment(Byte[]) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將批註新增至目前的 Metafile。
public:
void AddMetafileComment(cli::array <System::Byte> ^ data);
public void AddMetafileComment (byte[] data);
member this.AddMetafileComment : byte[] -> unit
Public Sub AddMetafileComment (data As Byte())
參數
- data
- Byte[]
包含批注的位元組陣列。
範例
下列程式代碼範例的設計目的是要與 Windows Forms 搭配使用,而且它需要 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相關聯時,這個方法才有效。