Graphics.EnumerateMetafileProc
/*
GDI+ Programming in C# and VB .NET
by Nick Symmonds
Publisher: Apress
ISBN: 159059035X
*/
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;
namespace MetaEnum_c
{
public class MetaEnum : System.Windows.Forms.Form
{
private System.ComponentModel.Container components = null;
private System.Windows.Forms.ListBox LB;
Metafile mf = new Metafile("mymeta.emf");
public MetaEnum()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
mf.Dispose();
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.LB = new System.Windows.Forms.ListBox();
this.SuspendLayout();
//
// LB
//
this.LB.Location = new System.Drawing.Point(208, 232);
this.LB.Name = "LB";
this.LB.Size = new System.Drawing.Size(168, 121);
this.LB.TabIndex = 1;
//
// MetaEnum
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(392, 373);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.LB});
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "MetaEnum";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "MetaEnum";
this.Load += new System.EventHandler(this.MetaEnum_Load);
this.ResumeLayout(false);
}
#endregion
[STAThread]
static void Main()
{
Application.Run(new MetaEnum());
}
private void MetaEnum_Load(object sender, System.EventArgs e)
{
}
protected override void OnPaint(PaintEventArgs e)
{
Graphics G = e.Graphics;
G.EnumerateMetafile( mf, new Point( 50, 50 ),
new Graphics.EnumerateMetafileProc(this.MetafileCallback) );
}
// Define callback method.
private bool MetafileCallback( EmfPlusRecordType recordType, int flags,
int dataSize, IntPtr data,
PlayRecordCallback callbackData)
{
LB.Items.Add(recordType);
if ( dataSize > 0 )
{
byte[] D = new byte[dataSize];
Marshal.Copy(data, D, 0, dataSize);
mf.PlayRecord(recordType, flags, dataSize, D);
}
return true;
}
}
}
Related examples in the same category
1. | Graphics.Clear | | |
2. | Graphics.CopyFromScreen | | |
3. | Graphics.DashCap | | |
4. | Graphics.Dispose() | | |
5. | Graphics.DpiX | | |
6. | Graphics.DpiY | | |
7. | Graphics.DrawArc | | |
8. | Graphics.DrawBeziers | | |
9. | Graphics.DrawEllipse | | |
10. | Graphics.DrawIcon(Icon icon, int x, int y) | | |
11. | Graphics.DrawImage(Image i, int x, int y); | | |
12. | Graphics.DrawImage(Image img, int x, int y, int width, int height) | | |
13. | Graphics.DrawImage(im, rec, recPart, GraphicsUnit.Pixel) | | |
14. | Graphics.DrawImage(Image, Points[]) | | |
15. | Graphics.DrawLine(Pen p, int x0,int y0, int x1, int y1) | | |
16. | Graphics.DrawLine(Pen,Point point1, Point point2) | | |
17. | Graphics.DrawLines(Pen pen, Point[] points) | | |
18. | Graphics.DrawPie | | |
19. | Graphics.DrawRectangle | | |
20. | Graphics.DrawRectangles | | |
21. | Graphics.DrawString | | |
22. | Graphics.FillClosedCurve | | |
23. | Graphics.FillEllipse | | |
24. | Graphics.FillEllipse(Brush brush,int x, int y,int width,int height) | | |
25. | Graphics.FillPath(Brushes.AliceBlue, myPath); | | |
26. | Graphics.FillPolygon | | |
27. | Graphics.FillRectangle | | |
28. | Graphics.FillRectangles | | |
29. | Graphics.FillRegion | | |
30. | Graphics.FromHwnd() | | |
31. | Graphics.FromImage | | |
32. | Graphics.InterpolationMode | | |
33. | Graphics.MeasureString | | |
34. | Graphics.PageScale | | |
35. | Graphics.PageUnit | | |
36. | Graphics.PixelOffsetMode | | |
37. | Graphics.ReleaseHdc | | |
38. | Graphics.RotateTransform | | |
39. | Graphics.ScaleTransform | | |
40. | Graphics.SetClip | | |
41. | Graphics.SetClip(path, (CombineMode)miCombineMode.Index) | | |
42. | Graphics.SmoothingMode | | |
43. | Graphics.TextRenderingHint | | |
44. | Graphics.Transform | | |
45. | Graphics.TranslateClip | | |
46. | Graphics.TranslateTransform | | |
47. | Graphics.VisibleClipBounds | | |