Đồ án Csharp chươg trình Paint + Source

52 1.4K 2
Đồ án Csharp chươg trình Paint + Source

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN @ ĐỒ ÁN CUỐI KỲ MÔN:LẬP TRÌNH TRÊN WINDOW. TÊN ĐỒ ÁN:CHƯƠNG TRÌNH PAINT Giáo Viên hướng dẫn:Ngô Thanh Hùng Danh sách nhóm thực hiện: Trần Đình Đoàn 08520534 Nguyễn Viết Nguyên 08520569 Lê Đức Thông 08520598 Nguyễn Đông Nguyên 08520261 Vũ Thanh Long 08520562 Tp.HCM,ngày 14 tháng 6 năm 2010 Tp.HCM,ngày 14 tháng 6 năm 2010 1 Mục Lục A.Mở đầu. 3 B.Phần trình bày 3 I.Giới thiệu chương trình 3 II. Cấu trúc chương trình 3 1.Các thành phần của chương trình. 3 2.Chức năng của các thành phần chính 3 III.Giao diện chương trình 4 1.Form chính 4 2.Form Help 5 IV.Ý tưởng và code 5 1.Ý tưởng……………………………………………………………………5 2.Code(Class)……………………………………………………………….5 a.khung.cs…………………………………………………………… ……6 b.draw.cs……………………………………………………………………8 ……………………………………………………………………13 ……………………………………………………………………13 ………………………………………………………………14  ………………………………… 16 ………………………………….………………………….16  !! ……………………………………….17 V.Cách Sử dụng………………………………………………………………… 50 1.Thao tác cơ bản (New ,Open,Save,Chọn công cụ )…………………… 50 2.Những thao tác vẻ hình………………………………………………… 51 C.Kết luận ……………………………………………………………………… 52 2 A.Mở đầu Trong môn học lập trình C trên windows chúng tôi chon đề tài paint vì chúng tôi muốn viết chương trình chỉnh sửa ảnh với nhiều tính năng mới,giao diện đẹp,dễ sử dụng hơn so với các chương trình paint hiện tại. B.Phần Trình bày I.Giới thiệu chương trình "#$%&'()"#$*$+#',"#- ""#$'.+'/0('12'/034 5"*5*)676'$8+#',9$*5,(* :/)13,;< II. Cấu trúc của chương trình 1.Các thành phần chính. =>0 =?' =@0A ='0A =@' =?A =0' 2.Chức năng của các thành phần chính. >012B0(B00 C ' =DE+FG)*H' =I+FJ)13,(('.:13,+; =(KE+F"0,H'+LGM+L(E8 =N'+FB"#$ CN' =OE+FP00'G'1"H"H =QE+F+,"RG'1"HO =B>0S'5S05SE+F;50TEU 1?' =D = =I 3 =O =Q =S @0A =@0A? A2B*$85V(059$5W =@0A A2XY(0#1,Z[5+T55(5W1G;FEU8- '0A C\$']$,(1G-8 D('51G^_B'&_J@0A?Q9(05;5`(051 số hình vẽ hình học cơ bản,…) Đồng thời bạn có thể lựa chọn màu sắc tùy ý bạn ở @0AaF;+"R!$,(1G06 e.TextBox Sử dụng để nhập text cho công cụ vẻ text. f.Statustrip nằm ở lề dưới của chương trình.Hiển thị kích thước hình đang vẻ,tọa độ chuột và trạng thái Zoom. @' 1G1'b+"R&6#1,/$,Z = =' =cCd' =d'D5D5e' CD('51G;F9bB&6+;3-f G''g5M3-hB'K1' III.Giao diện chương trình "#$+"R'b1i&hj:&'"kl'00'XmmY @''."#$12X5 1.Form chính tên là form1 !12h(n0Z  >03B0"k'0B"5# V5"0VS5O5Q  ?'>0;B_"0"'FL"H'G A0"k'EF_  lEo(#'+F_'.BBo  ?13B&_o"o$76'5o59$5` (0  AE+F8(0o  @''FL&', 4  0?''FL8+)0)57"HEo(GB' S 2.Form Help(0pc'+F'FL IV.Ý Tưởng Chính và Code 1.Ý tưởng  an0':G)'0A(E*_?B_(G"k' E''.*'."H7'"B*+;*(E*   ?G)H;B_('0A;':;/ 065;F'0F+"R:E*7'"k'E ndH(^;B_+q''g'0A;':a2 k'+q''g$("k'E*  dH(^B+LL(7r,*:'0A "#3"H'E*  lE*+"R-:1J'HdH(+"Rs7bH '0A(+"R1q0'/0"#3*1J'('D(' H(+"#1q0'/0(7B"05'5 5'5  ('(1+n0*$:E*_l(7't +"R`0'.07b%$(H'*(E*+2k'"0 G'B*+; 2.Code 3B  70          !!    M+L 5 70  ?B_(EF+q'E*U06 "k'E  (Z  (70Z  ((;B_*B+'F(0+G'E(7' "k'E'70)(;F7\uE* ((^;B_7'F'gE*;HP0B7&b0; $'.'0)"#3 #region vẽ các điểm co dãn của khung ảnh public void vekhung(Form1 form) { Graphics g = form.panel4.CreateGraphics(); Pen a = new Pen(Color.Black, 4); x.X = form.ptmain.Location.X + form.ptmain.Size.Width / 2; x.Y = form.ptmain.Location.Y + form.ptmain.Size.Height; y.X = form.ptmain.Location.X + form.ptmain.Size.Width; y.Y = form.ptmain.Location.Y + form.ptmain.Size.Height / 2; z.X = form.ptmain.Location.X + form.ptmain.Size.Width; z.Y = form.ptmain.Location.Y + form.ptmain.Size.Height; form.Invalidate(); g.DrawLine(a, x.X + 2, x.Y + 2, x.X - 2, x.Y + 2); g.DrawLine(a, y.X + 2, y.Y + 2, y.X + 2, y.Y - 2); g.DrawLine(a, z.X + 2, z.Y + 2, z.X + 2, z.Y - 2); if (form.ptmain.Width > form.panel4.Width) { form.hScrollBar1.Visible = true; form.hScrollBar1.Maximum = form.ptmain.Width - form.panel4.Width + 115; form.hScrollBar1.LargeChange = 110; } if (form.ptmain.Height > form.panel4.Height) { form.vScrollBar1.Visible = true; form.vScrollBar1.Maximum = form.ptmain.Height - form.panel4.Height + 115; form.vScrollBar1.LargeChange = 110; } } #endregion  (7'Z 6  ((;B_7'F0);iJE7\ u7&b0;$*+q'$G0) #region kiểm tra chuột co Move vào điểm co dãn nêu có thì đổi cursors public void kiemtra(object sender, MouseEventArgs e, Form1 form1) { if (e.X > (x.X - 20) && e.X < (x.X + 20) && e.Y < (x.Y + 10) && e.Y > (x.Y - 10)) { if (a == false && b == false && c == false) { a = true; form1.panel4.Cursor = System.Windows.Forms.Cursors.SizeNS; } } else if (e.Y > (y.Y - 20) && e.Y < (y.Y + 20) && e.X < (y.X + 10) && e.X > (y.X - 10)) { if (a == false && b == false && c == false) { b = true; form1.panel4.Cursor = System.Windows.Forms.Cursors.SizeWE; } } else if (e.X > z.X - 20 && e.X < z.X + 20 && e.Y < z.Y + 10 && e.Y > (z.Y - 10)) { if (a == false && b == false && c == false) { c = true; form1.panel4.Cursor = System.Windows.Forms.Cursors.SizeNWSE; } } else { form1.panel4.Cursor = System.Windows.Forms.Cursors.Default; if (form1.mousepanel4 == false) { a = false; b = false; c = false; } } } #endregion  (7Z  ((;B_+q'7"HE*-' 0F0)7'B+'/0+'/07'.+u+ #region khi chuột Move vào điểm co dãn và mousedows thì khéo dãn public void keo(object sender, MouseEventArgs e, Form1 form1) 7 { kiemtra(sender, e, form1); if (form1.mousepanel4 == true) { if (a == true && b == false && c == false) { form1.panel4.Cursor = System.Windows.Forms.Cursors.SizeNS; form1.ptmain.Height += e.Y - form1.ptmain.Size.Height - form1.ptmain.Location.Y; form1.panel4.Invalidate(); vekhung(form1); } if (a == false && b == true && c == false) { form1.panel4.Cursor = System.Windows.Forms.Cursors.SizeWE; form1.ptmain.Width += e.X - form1.ptmain.Size.Width - form1.ptmain.Location.X; form1.panel4.Invalidate(); vekhung(form1); } if (a == false && b == false && c == true) { form1.panel4.Cursor = System.Windows.Forms.Cursors.SizeNWSE; form1.ptmain.Width += e.X - form1.ptmain.Size.Width - form1.ptmain.Location.X; form1.ptmain.Height += e.Y - form1.ptmain.Size.Height - form1.ptmain.Location.Y; form1.panel4.Invalidate(); vekhung(form1); } } } #endregion 1  ?B_f-)E*_"k'E* "H7'+"06E*dH(G/060 _5;F+q'+"R7"H'0F+"R  (Z  (Z((;B_Gv06 '0A(*70'0A+;+2k'"0&'L 57"H"#306E*(1'b #region hàm tạo hình chữ nhật và picturebox vẽ public void taorectangle(object sender, MouseEventArgs e, Form1 form, pen ptmain) { if (form.mouseptmain == true) { 8 if (e.X > form.mousedownptmain.X) { poinptve.X = form.mousedownptmain.X; rec.Width = e.X - form.mousedownptmain.X; } else { poinptve.X = e.X; rec.Width = form.mousedownptmain.X - e.X; } if (e.Y > form.mousedownptmain.Y) { poinptve.Y = form.mousedownptmain.Y; rec.Height = e.Y - form.mousedownptmain.Y; } else { poinptve.Y = e.Y; rec.Height = form.mousedownptmain.Y - e.Y; } rec.Location = poinptve; poinptve.X = rec.Location.X - 5; poinptve.Y = rec.Location.Y - 5; form.ptve.Location = poinptve; form.ptve.Width = rec.Width + 10; form.ptve.Height = rec.Height + 10; Rectangle tam = new Rectangle(); Point tam2 = new Point(); tam2.X = rec.X - 5; tam2.Y = rec.Y - 5; tam.Location = tam2; tam.Width = rec.Width + 10; tam.Height = rec.Height + 10; if (rec.Width > 4 && rec.Height > 4) { form.ptve.Image = new Bitmap(form.ptve.Width, form.ptve.Height); Graphics g = Graphics.FromImage(form.ptve.Image); Pen t = new Pen(Color.Black, 2); g.DrawImage(ptmain.Image, 0, 0, tam, GraphicsUnit.Pixel); g.DrawRectangle(t, new Rectangle(0, 0, form.ptve.Width, form.ptve.Height)); g.DrawLine(t, form.ptve.Width / 2, form.ptve.Height - 3, form.ptve.Width / 2, form.ptve.Height); g.DrawLine(t, form.ptve.Width - 3, form.ptve.Height / 2, form.ptve.Width, form.ptve.Height / 2); g.DrawLine(t, form.ptve.Width - 3, form.ptve.Height - 2, form.ptve.Width, form.ptve.Height - 2); } } } #endregion  (7'E+F7'F0);(EE+F7\ 9 uDb0;$+q'$G0) public void kiemtra(object sender, MouseEventArgs e, Form1 form, pen ptmain) { if (e.X > (form.ptve.Width / 2) - 5 && e.X < (form.ptve.Width / 2) + 5 && e.Y > form.ptve.Height-5) { if (a == false && b == false && c == false) { a = true; form.ptve.Cursor = System.Windows.Forms.Cursors.SizeNS; } } else if (e.Y > (form.ptve.Height / 2) - 5 && e.Y < (form.ptve.Height / 2) + 5 && e.X > (form.ptve.Width-5)) { if (a == false && b == false && c == false) { b = true; form.ptve.Cursor = System.Windows.Forms.Cursors.SizeWE; } } else if (e.X > form.ptve.Width - 5 && e.Y > form.ptve.Height - 5) { if (a == false && b == false && c == false) { c = true; form.ptve.Cursor = System.Windows.Forms.Cursors.SizeNWSE; } } else { form.ptve.Cursor = System.Windows.Forms.Cursors.Default; if (form.mouseptve == false) { a = false; b = false; c = false; } } }  (7E+F+q'7"H'01(wh: 06'0A public void keo(object sender, MouseEventArgs e, Form1 form, pen ptmain) { kiemtra(sender, e, form,ptmain); Rectangle tam = new Rectangle(); Point tam2 = new Point(); tam2.X = rec.X - 5; 10 [...]... form.ptve.Location.Y ; if (form.mouseptve==true && a==false && b==false && c==false) { y.X += (e.X - form.mousedownptve.X); y.Y += (e.Y - form.mousedownptve.Y); form.ptve.Location = y; y.X=form.ptve.Location.X - form.ptmain.Location.X; y.Y=form.ptve.Location.Y - form.ptmain.Location.Y; y.X = form.ptve.Location.X + 5; y.Y = form.ptve.Location.Y + 5; rec.Location = y; Rectangle tam = new Rectangle(); Point tam2 = new... để thực hiện thao tác vẽ của người dung #region sự kiện ptmain private void sukien(pen picture) { picture.MouseDown += new MouseEventHandler(mousedown_pt); picture.MouseMove += new MouseEventHandler(mousemove_pt); picture.MouseUp += new MouseEventHandler(mouseup_pt); picture.DoubleClick += new EventHandler(doubleclick_pt); } private void mousedown_pt(object sender, MouseEventArgs e) { textBox1.Visible... ttext.Checked || tracmau.Checked) { ptve.Visible = false; pe.vehinh(this, dr.rec); } } private void mousemove_pt(object sender, MouseEventArgs e) { if ((e.X > mousedownptmain.X + 4 || e.Y > mousedownptmain.Y + 4 || e.X + 4 < mousedownptmain.X || e.Y + 4 < mousedownptmain.Y) && mouseptmain) { if (tlaymau.Checked == false && tmouse.Checked == false && tracmau.Checked == false && txoa.Checked == false) { ptve.Visible...tam2.Y = rec.Y - 5; tam.Location = tam2; tam.Width = rec.Width+ 10; tam.Height = rec.Height+ 10; if (form.mouseptve) { if (a == true && b == false && c == false) { form.ptve.Cursor = System.Windows.Forms.Cursors.SizeNS; form.ptve.Height =x.Y + (e.Y - form.mousedownptve.Y); rec.Height = form.ptve.Height-10; if (form.ptve.Width > 0 && form.ptve.Height >... if(form.ttamgiac.Checked) Name="Tam Giác"; if(form.ttamgiacvuong.Checked) if(form.tthoi.Checked) Name="Hình Thoi"; if(form.tsao4canh.Checked) Name="Sao Bốn Cánh"; if(form.tsao5canh.Checked) Name="Sao Năm Cánh"; if(form.tsao6canh.Checked) Name="Sao Sáu Cánh"; if(form.tngugiac.Checked) Name="Ngũ Giác"; if(form.tlucgiac.Checked) Name="Lục Giác"; if(form.tset.Checked) Name="Hình Tia sét"; if(form.thttron.Checked)... 2, form.ptve.Width, form.ptve.Height - 2); } } if (a == false && b == false && c == true) { form.ptve.Cursor = System.Windows.Forms.Cursors.SizeNWSE; form.ptve.Height = x.Y + (e.Y - form.mousedownptve.Y); form.ptve.Width = x.X + (e.X - form.mousedownptve.X); 11 form.ptve.Height); rec.Height = form.ptve.Height-10; rec.Width = form.ptve.Width-10; if (form.ptve.Width > 0 && form.ptve.Height > 0) { form.ptve.Image... = form.ptve.Location.Y + 5; rec.Location = y; Rectangle tam = new Rectangle(); Point tam2 = new Point(); tam2.X = rec.X - 5; tam2.Y = rec.Y - 5; tam.Location = tam2; tam.Width = rec.Width+ 10; tam.Height = rec.Height+ 10; if (form.ptve.Width > 0 && form.ptve.Height > 0) { form.ptve.Image = new Bitmap(form.ptve.Width, form.ptve.Height); Graphics g = Graphics.FromImage(form.ptve.Image); Pen t = new Pen(Color.Black,... hết các thao tác vexcuar người dùng đồng thời là lớp trung gian của các lớp khác       d.Tool.cs  Hàm : Hàm vekeo() có tác dụng thay đổi kích thước của pen.Image khi kích thước củ vùng vẽ chính bị thay đổi Hàm laymau() có tác dụng lấy thông số màu tại một điểm làm màu chính khi vẽ Hàm vehinh() hàm này là hàm thực hiện hầu hết các thao tác vẽ của người dùng đồng thời lưu toàn bộ các thao tác... mousemuveptmain.X = e.X; mousemuveptmain.Y = e.Y; mouse.X = e.X; mouse.Y = e.Y; pe.vehinh(this, dr.rec); } panel4.Cursor = System.Windows.Forms.Cursors.Default; toolStripStatusLabel5.Text = e.X.ToString() + "," + e.Y.ToString(); 19 } private void mouseup_pt(object sender, MouseEventArgs e) { mouseptmain = false; if (ttext.Checked || tmouse.Checked || txoa.Checked || tracmau.Checked) { pe.vehinh(this, dr.rec);... Graphics.FromImage(pe.luu.sd[pe.luu.n].saveim); f.DrawImage(image, 0, 0); pe.luu.sd[pe.luu.n].vepen = 3; pe.luu.sd[pe.luu.n].size = new Size(image.Width, image.Height); pe.luu.sd[pe.luu.n].rec = new Rectangle(0, 0, pe.Width, pe.Height); pe.luu.n ++ ; pe.n = pe.luu.n; 20 } } break; case DialogResult.No: pe.Image = new Bitmap(557, 408); pe.luu.n = 0; if (openFileDialog1.ShowDialog() == DialogResult.OK) { file = new FileInfo(openFileDialog1.FileName); . windows chúng tôi chon đề tài paint vì chúng tôi muốn viết chương trình chỉnh sửa ảnh với nhiều tính năng mới,giao diện đẹp,dễ sử dụng hơn so với các chương trình paint hiện tại. B.Phần Trình. ĐẠI HỌC CÔNG NGHỆ THÔNG TIN @ ĐỒ ÁN CUỐI KỲ MÔN:LẬP TRÌNH TRÊN WINDOW. TÊN ĐỒ ÁN:CHƯƠNG TRÌNH PAINT Giáo Viên hướng dẫn:Ngô Thanh Hùng Danh sách nhóm thực hiện: Trần Đình Đoàn 08520534 Nguyễn

Ngày đăng: 06/10/2014, 19:46

Từ khóa liên quan

Mục lục

  • Tp.HCM,ngày 14 tháng 6 năm 2010

    • c.pen.cs……………………………………………………………………13

    • d.tool.cs……………………………………………………………………13

    • e.Property.cs………………………………………………………………14

    • f.Help.cs (Class xử lí của form Help) …………………………………...16

    • g.SaveDraw.cs………………………………….………………………….16

    • h.Form1.cs (class xử lí của form1) ……………………………………….17

    • A.Mở đầu

      • I.Giới thiệu chương trình

      • Chương trình của chúng tôi là một chương trình vẽ hình đơn giản tương tự như chương trình Paint của hệ điều hành window bao gồm nhiều chức năng ,như vẽ vecto,vẽ một số khối hình học đơn giản cắt hình vẽ text,xem ảnh và vẽ trên nền một bức ảnh có sẳn.

        • II. Cấu trúc của chương trình

        • 1.Các thành phần chính.

        • +Menu

        • +Toolstrip

        • +GroupBox

        • +PictureBox

        • +PropertyGrid

        • +TextBox

        • +StatusStrip

        • 2.Chức năng của các thành phần chính.

        • a.Menu bao gồm các menu và các menu con sau

        • -File

        • +New dùng để tạo một trang vẽ mới

Tài liệu cùng người dùng

Tài liệu liên quan