Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 38 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
38
Dung lượng
781,5 KB
Nội dung
1 GDI+ GDI+ Nguyễn Văn Phong Nguyễn Văn Phong - 2010 2 Nội Dung Nội Dung GDI+ Chương trình vẽ cơ bản trên Form Lớp Graphics và hàm OnPaint() Lớp Color và Font Lớp Pen và Brush Các hàm vẽ đường thẳng, hình chữ nhật, ellipse Các hàm vẽ cung, đa giác Hiển thị ảnh Minh họa Multimedia Nguyễn Văn Phong - 2010 3 GDI+ GDI+ GDI: Graphical Device Interface GDI+ là API (Application programming interface) cung cấp các lớp cho phép Tạo những đồ họa 2D vector Thao tác trên font Hiển thị các ảnh Thư viện FCL chứa các lớp thao tác vẽ trong namespace System.Drawing Tất cả các thao tác tô vẽ trên form đều thực hiện bởi chức năng GDI+ Nguyễn Văn Phong - 2010 4 System.Drawing System.Drawing structure class System.Drawing Font FontFamily Graphics Graphics Icon Pen Region SolidBrush TextureBrush Image Brush HatchBrush LinearGradientBrush PathGradientBrush SolidBrush TextureBrush Color Point Rectangle Size Nguyễn Văn Phong - 2010 5 Vẽ trên Form Vẽ trên Form public partial class Form1 : Form { public Form1() { InitializeComponent(); } protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; g. DrawString DrawString("Hello GDI!", Font, Brushes.Red, 20, 20); } } Nguyễn Văn Phong - 2010 6 Graphics Graphics Lớp Graphics thể hiện “ Abstract Abstract” drawing surface Tập hợp những “ tool tool” cho phép thao tác trên surface đó Để lấy đối tượng Graphics Sử dụng thuộc tính Graphics được truyền cho OnPaint() Sử dụng phương thức CreateGraphics() của control Lấy từ đối tượng dẫn xuất từ Bitmap Gọi hàm Invalidate() thay vì OnPaint() Nguyễn Văn Phong - 2010 7 Lấy đối tượng Graphics Lấy đối tượng Graphics protected override void OnPaint(PaintEventArgs paintevent) { Graphics graf=paintevent.Graphics; } private void mainForm_Paint(object sender, PaintEventArgs paintevent) { Graphics graf=paintevent.Graphics; } Từ tham số PaintEventAtgs Nguyễn Văn Phong - 2010 8 Lấy đối tượng Graphics Lấy đối tượng Graphics private void PaintMe(Control testcontrol) { Graphics graf=testcontrol.CreateGraphics(); . . . } protected override void OnPaint(PaintEventArgs paintevent) { Bitmap bmpimage=new Bitmap("hutech.jpg"); Graphics graf = Graphics.FromImage (bmpimage); } Lấy từ control Lấy từ ảnh Nguyễn Văn Phong - 2010 9 DrawString() method DrawString() method Hiển thị text trong Graphics cụ thể Có nhiều phiên bản DrawString( DrawString( String text, String text, // Text th hi nể ệ // Text th hi nể ệ Font f, Font f, // Font // Font Brush b, Brush b, // Color & texture // Color & texture Float x, y); Float x, y); // v trí góc trái trênị // v trí góc trái trênị Tham số Font và Brush không có mặc định nên phải truyền vào. Nguyễn Văn Phong - 2010 10 Tọa độ hệ thống Tọa độ hệ thống (0,0) (w,0) (0,h) (w,h) Gốc tọa độ (0,0) (w 1 ,0) (0,h 1 ) (w 1 ,h 1 ) Form, Panel, GroupBox Control [...]... video WAV (Windows Wave-file Format): audio MIDI (Musical Instrument Digital Interface): audio Nguyễn Văn Phong - 2010 32 Multimedia Bước 1: bổ sung Windows Media Player vào ToolBox Kích chuột phải vào ToolBox -> chọn Choose Items… Trong Dialog Choose Toolbox Items chọn COM Components Chọn Windows Media Player Khi đó control WMP sẽ hiện ở dưới cùng của ToolBox Nguyễn Văn Phong - 2010 33 Multimedia... Văn Phong - 2010 29 Form có dạng NonRectangle Bước 3: Tạo trình xử lý cho sự kiện Paint Nguyễn Văn Phong - 2010 30 Form có dạng NonRectangle Demo Vùng của Form Vùng ngoài Form Nguyễn Văn Phong - 2010 31 Multimedia Tạo ứng dụng chứa Windows Media Player control cho phép Play các file video và sound theo nhiều dạng format MPEG (Motion Pictures Expert Group): video AVI (Audio-video Interleave):... Nguyễn Văn Phong - 2010 27 Form có dạng NonRectangle Bước 1: Tạo ứng dụng Windows Application Thiết kế Form có dạng như sau FormBorderStyle = none Nguyễn Văn Phong - 2010 28 Form có dạng NonRectangle Bước 2: Thiết lập các thuộc tính cho Form như sau: TransparencyKey = Control: màu sẽ trong suốt khi vẽ trên Form FormBorderStyle = None: Form không có đường biên Thiết lập màu nền cho 2... Nguyễn Văn Phong - 2010 33 Multimedia Bước 2: kéo Windows Media Player thả vào Form Thiết lập Dock = Fill rag D Dock = Fill Đổi tên control thành WMPlayer Nguyễn Văn Phong - 2010 34 Multimedia Bước 3: Tạo MenuStrip để bổ sung chức năng Open File media Nguyễn Văn Phong - 2010 35 Multimedia Bước 4: viết trình xử lý cho Menuitem Open Nguyễn Văn Phong - 2010 36 ... Nguyễn Văn Phong - 2010 16 Pen Nguyễn Văn Phong - 2010 17 Brush Dùng để tô vùng bên trong của hình Lớp Brush là lớp Abstract nên không tạo thể hiện Sử dụng các lớp kế thừa sau để tạo brush SolidBrush LinearGradientBrush TextureBrush HatchBrush Sử dụng lớp Brushes định nghĩa trước các brush Nguyễn Văn Phong - 2010 18 Brush Solid Hatch LinearGradient Texture Nguyễn Văn Phong - 2010 19 Bursh... Green và Blue Tạo màu sử dụng hàm FromArgb() Color red = Color.FromArgb(255,0,0); Color blue = Color.FromArgb(1 28, 0, 255, 0); Nguyễn Văn Phong - 2010 12 Font Cách tạo đối tượng Font: new Font(…) Có 13 phiên bản của constructor Size = 8 pixel Font fa = new Font("Times New Roman", 8) ; Font fb = new Font("Arial", 36, FontStyle.Bold); Font fc = new Font(fb, FontStyle.Bold | FontStyle.Italic); Font... 10, 10, 100,100); // scale trong hình chữ nhật kích thước 100x100 Nguyễn Văn Phong - 2010 23 Image Nguyễn Văn Phong - 2010 24 Image Ellipse được vẽ lên ảnh, rồi sau đó với vẽ ảnh lên Form Nguyễn Văn Phong - 2010 25 Minh họa 1 Custom lại nền của Form Override phương thức OnPaintBackground của Form Nguyễn Văn Phong - 2010 26 Form có dạng NonRectangle Tạo form có hình dạng khác hình chữ nhật Sử... new Font("Arial", 1, GraphicsUnit.Inch); Size = 1 inch Nếu tên font không tìm thấy thì font mặc định được sử dụng Nguyễn Văn Phong - 2010 13 Font Nguyễn Văn Phong - 2010 14 Font Demo Time New Roman, 14 Arial, 36 Arial, Bold, Italic, 36 Impact, 1 inch Nguyễn Văn Phong - 2010 15 Pen Xác định width, style, fill style Không cho kế thừa, nhưng tạo thể hiện được Trong namespace System.Drawing ... Texture Nguyễn Văn Phong - 2010 20 Line, Rectangle, Ellipse DrawLine DrawRectangle (Pen p, int x, int y, int width, int height) FillRectangle (Pen p, int x, int y, int width, int height) DrawEllipse (Pen p, int x1, int y1, int x2, int y2) (Brush b, int x, int y, int width, int height) FillEllipse (Brush b, int x, int y, int width, int height) Nguyễn Văn Phong - 2010 21 Line, Rectangle,... int y1, int x2, int y2) (Brush b, int x, int y, int width, int height) FillEllipse (Brush b, int x, int y, int width, int height) Nguyễn Văn Phong - 2010 21 Line, Rectangle, Ellipse Nguyễn Văn Phong - 2010 22 Image Lớp Image hiển thị các ảnh bitmap Phương thức static FromFile tạo ảnh từ file Các dạng ảnh: *.bmp, *.gif, *.jpg, *.ico… Image img = Image.FromFile(“hutech.bmp”); Image img2 . = 8 pixel Size = 1 inch Nguyễn Văn Phong - 2010 14 Font Font Nguyễn Văn Phong - 2010 15 Font Font Demo Time New Roman, 14 Arial, 36 Arial, Bold, Italic, 36 Impact, 1 inch Nguyễn Văn Phong -. 1 GDI+ GDI+ Nguyễn Văn Phong Nguyễn Văn Phong - 2010 2 Nội Dung Nội Dung GDI+ Chương trình vẽ cơ bản trên Form Lớp Graphics và hàm OnPaint() Lớp Color và Font Lớp. nghĩa trước. Pen p3 = Pens.Violet; Pen p3 = Pens.Violet; Nguyễn Văn Phong - 2010 17 Pen Pen Nguyễn Văn Phong - 2010 18 Brush Brush Dùng để tô vùng bên trong của hình Lớp Brush là lớp Abstract