⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 CAD转换工具 CAD转换工具 CAD转换工具 CAD转换工具
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Drawing;
using System.Collections;
using System.Drawing.Imaging;
using System.Windows.Forms;
using System.Text;
using System.Runtime.InteropServices;


namespace CadImage
{
	public class fmCADImage : System.Windows.Forms.Form
	{
		private const long FILE_SHARE_READ = 0x00000001;
		private const long CREATE_NEW = 1;
		private const long OPEN_EXISTING = 3;
		private const long GENERIC_READ = 0x80000000;
		private const long GENERIC_WRITE = 0x40000000;
		private const long CREATE_ALWAYS = 2;
		private const long FILE_ATTRIBUTE_NORMAL = 0x00000080;

		private float KX, KY;

		private System.Windows.Forms.OpenFileDialog dlgOpenDXFFile;
		private System.Windows.Forms.Panel panel1;
		private lForm layerForm = new lForm();
		private int fScale = 100;
		internal System.Windows.Forms.MainMenu MainMenu1;
		internal System.Windows.Forms.MenuItem MenuItem1;
		internal System.Windows.Forms.MenuItem MenuItem3;
		internal System.Windows.Forms.MenuItem MenuItem11;
		internal System.Windows.Forms.MenuItem MenuItem4;
		internal System.Windows.Forms.MenuItem MenuItem10;
		internal System.Windows.Forms.MenuItem MenuItem2;
		internal System.Windows.Forms.MenuItem MenuItem5;
		internal System.Windows.Forms.MenuItem MenuItem6;
		internal System.Windows.Forms.MenuItem MenuItem7;
		internal System.Windows.Forms.MenuItem MenuItem8;
		internal System.Windows.Forms.MenuItem MenuItem9;
		internal System.Windows.Forms.MenuItem MenuItem12;
		private System.Windows.Forms.MenuItem menuItem13;
		private System.Windows.Forms.MenuItem menuItem14;
		internal System.Windows.Forms.SaveFileDialog CD;
		/// <summary>
		/// Required designer variable.
		/// </summary>
		private System.ComponentModel.Container components = null;

		public fmCADImage()
		{
			//
			// Required for Windows Form Designer support
			//
			InitializeComponent();
			this.MouseWheel += new MouseEventHandler(MouseZoom);

			//
			// TODO: Add any constructor code after InitializeComponent call
			//
		}

		/// <summary>
		/// Clean up any resources being used.
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.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.dlgOpenDXFFile = new System.Windows.Forms.OpenFileDialog();
			this.panel1 = new System.Windows.Forms.Panel();
			this.MainMenu1 = new System.Windows.Forms.MainMenu();
			this.MenuItem1 = new System.Windows.Forms.MenuItem();
			this.MenuItem3 = new System.Windows.Forms.MenuItem();
			this.MenuItem11 = new System.Windows.Forms.MenuItem();
			this.MenuItem4 = new System.Windows.Forms.MenuItem();
			this.MenuItem10 = new System.Windows.Forms.MenuItem();
			this.MenuItem2 = new System.Windows.Forms.MenuItem();
			this.menuItem14 = new System.Windows.Forms.MenuItem();
			this.menuItem13 = new System.Windows.Forms.MenuItem();
			this.MenuItem5 = new System.Windows.Forms.MenuItem();
			this.MenuItem6 = new System.Windows.Forms.MenuItem();
			this.MenuItem7 = new System.Windows.Forms.MenuItem();
			this.MenuItem8 = new System.Windows.Forms.MenuItem();
			this.MenuItem9 = new System.Windows.Forms.MenuItem();
			this.MenuItem12 = new System.Windows.Forms.MenuItem();
			this.CD = new System.Windows.Forms.SaveFileDialog();
			this.SuspendLayout();
			// 
			// dlgOpenDXFFile
			// 
			this.dlgOpenDXFFile.DefaultExt = "*.dxf";
			this.dlgOpenDXFFile.Filter = "CAD files (dwg, dxf, rtl, spl, prn, gl2, hpgl2, hpgl, hp2, hp1, hp, plo, hpg, hg, hgl, plt, cgm, svg, svgz)|*.dwg;*.dxf;*.rtl;*.spl;*.prn;*.gl2;*.hpgl2;*.hpgl;*.hp2;*.hp1;*.hp;*.plo;*.hpg;*.hg;*.hgl;*.plt;*.cgm;*.svg;*.svgz|" +
				"AutoCAD files (dwg, dxf)|*.dxf;*.dwg|" +
				"HPGL/2 files (rtl, spl, prn, gl2, hpgl2, hpgl, hp2, hp1, hp, plo, hpg, hg, hgl, plt)| *.rtl;*.spl;*.prn;*.gl2;*.hpgl2;*.hpgl;*.hp2;*.hp1;*.hp;*.plo;*.hpg;*.hg;*.hgl;*.plt|" +
				"Computer Graphics Metafile (cgm)|*.cgm|" +
				"Scalable Vector Graphics (svg, svgz)| *.svg; *.svgz|" +
				"All files (*.*)|*.*";
			this.dlgOpenDXFFile.RestoreDirectory = true;
			this.dlgOpenDXFFile.Title = "OpenDXFFile";
			// 
			// panel1
			// 
			this.panel1.AutoScroll = true;
			this.panel1.BackColor = System.Drawing.Color.White;
			this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
			this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
			this.panel1.Location = new System.Drawing.Point(0, 0);
			this.panel1.Name = "panel1";
			this.panel1.Size = new System.Drawing.Size(664, 326);
			this.panel1.TabIndex = 4;
			this.panel1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseUp);
			this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint);
			this.panel1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseMove);
			this.panel1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseDown);
			// 
			// MainMenu1
			// 
			this.MainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					  this.MenuItem1,
																					  this.MenuItem2,
																					  this.MenuItem12});
			// 
			// MenuItem1
			// 
			this.MenuItem1.Index = 0;
			this.MenuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					  this.MenuItem3,
																					  this.MenuItem11,
																					  this.MenuItem4,
																					  this.MenuItem10});
			this.MenuItem1.Text = "File";
			// 
			// MenuItem3
			// 
			this.MenuItem3.Index = 0;
			this.MenuItem3.Text = "Load";
			this.MenuItem3.Click += new System.EventHandler(this.button1_Click);
			// 
			// MenuItem11
			// 
			this.MenuItem11.Index = 1;
			this.MenuItem11.Text = "Save as BMP";
			this.MenuItem11.Click += new System.EventHandler(this.MenuItem11_Click);
			// 
			// MenuItem4
			// 
			this.MenuItem4.Index = 2;
			this.MenuItem4.Text = "Save as JPG";
			this.MenuItem4.Click += new System.EventHandler(this.MenuItem4_Click);
			// 
			// MenuItem10
			// 
			this.MenuItem10.Index = 3;
			this.MenuItem10.Text = "Exit";
			this.MenuItem10.Click += new System.EventHandler(this.MenuItem10_Click);
			// 
			// MenuItem2
			// 
			this.MenuItem2.Index = 1;
			this.MenuItem2.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					  this.menuItem14,
																					  this.menuItem13,
																					  this.MenuItem5,
																					  this.MenuItem6,
																					  this.MenuItem7,
																					  this.MenuItem8,
																					  this.MenuItem9});
			this.MenuItem2.Text = "Scale";
			// 
			// menuItem14
			// 
			this.menuItem14.Index = 0;
			this.menuItem14.Text = "10";
			this.menuItem14.Click += new System.EventHandler(this.menuItem14_Click);
			// 
			// menuItem13
			// 
			this.menuItem13.Index = 1;
			this.menuItem13.Text = "25";
			this.menuItem13.Click += new System.EventHandler(this.menuItem14_Click);
			// 
			// MenuItem5
			// 
			this.MenuItem5.Index = 2;
			this.MenuItem5.Text = "50";
			this.MenuItem5.Click += new System.EventHandler(this.menuItem14_Click);
			// 
			// MenuItem6
			// 
			this.MenuItem6.Checked = true;
			this.MenuItem6.Index = 3;
			this.MenuItem6.Text = "100";
			this.MenuItem6.Click += new System.EventHandler(this.menuItem14_Click);
			// 
			// MenuItem7
			// 
			this.MenuItem7.Index = 4;
			this.MenuItem7.Text = "200";
			this.MenuItem7.Click += new System.EventHandler(this.menuItem14_Click);
			// 
			// MenuItem8
			// 
			this.MenuItem8.Index = 5;
			this.MenuItem8.Text = "500";
			this.MenuItem8.Click += new System.EventHandler(this.menuItem14_Click);
			// 
			// MenuItem9
			// 
			this.MenuItem9.Index = 6;
			this.MenuItem9.Text = "1000";
			this.MenuItem9.Click += new System.EventHandler(this.menuItem14_Click);
			// 
			// MenuItem12
			// 
			this.MenuItem12.Index = 2;
			this.MenuItem12.Text = "Layers";
			this.MenuItem12.Click += new System.EventHandler(this.button2_Click);
			// 
			// fmCADImage
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.ClientSize = new System.Drawing.Size(664, 326);
			this.Controls.Add(this.panel1);
			this.Menu = this.MainMenu1;
			this.Name = "fmCADImage";
			this.Text = "DemoCADImage";
			this.Resize += new System.EventHandler(this.fmCADImage_Resize);
			this.Closing += new System.ComponentModel.CancelEventHandler(this.Form1_Closing);
			this.ResumeLayout(false);

		}
		#endregion
		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new fmCADImage());
		}

		private void button1_Click(object sender, System.EventArgs e)
		{	
			if(DLLWin32Import.CADFile != IntPtr.Zero)
			{
				DLLWin32Import.CloseCAD(DLLWin32Import.CADFile);
				DLLWin32Import.CADFile = IntPtr.Zero;
			}
            dlgOpenDXFFile.ShowDialog();
			DLLWin32Import.CADFile = DLLWin32Import.CreateCAD(panel1.Handle, dlgOpenDXFFile.FileName);
			if(DLLWin32Import.CADFile != IntPtr.Zero)
			{
				panel1.Visible = true;
				panel1.Invalidate();
			}
			//Layers
			int Cnt = DLLWin32Import.CADLayerCount(DLLWin32Import.CADFile);
			int I;
			int Layer;
			DXFData EData = new DXFData();
			layerForm.layerList.Items.Clear();
			for(I = 0; I < Cnt; I++)
			{
				Layer = DLLWin32Import.CADLayer(DLLWin32Import.CADFile, I, ref EData);
				layerForm.layers.Add(Layer);
				layerForm.layerList.Items.Add(EData.Text, true);
			}
		}

		private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
		{
			if(DLLWin32Import.CADFile != IntPtr.Zero) { 
				DLLWin32Import.CloseCAD(DLLWin32Import.CADFile);
				DLLWin32Import.CADFile = IntPtr.Zero;
			}
		}

		private void panel1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
		{
			if(DLLWin32Import.CADFile == IntPtr.Zero) return;
			Rect R = new Rect();
			float AbsWidth = 0;
			float AbsHeight = 0;
			float K;
			if(DLLWin32Import.CADFile != IntPtr.Zero) 
				DLLWin32Import.GetBoxCAD(DLLWin32Import.CADFile, ref AbsWidth, ref AbsHeight);
			if(AbsHeight != -1)
				GetClientRect(panel1, ref R);
			if(AbsWidth == 0) K = 1;
			else K = AbsHeight / AbsWidth;
			R.Bottom = (int)(R.Top + (R.Right - R.Left) * K);
			R.Left = (R.Left * fScale / 100) + DLLWin32Import.FX;
			R.Right = (R.Right * fScale / 100) + DLLWin32Import.FX;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -