Lập trình trên môi trường WindowsGDI docx

33 346 0
Lập trình trên môi trường WindowsGDI docx

Đ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

Lập trình trên môi trường Windows GDI+ Trần Duy Hoàng tdhoang@hcmus.edu.vn Nội dung  Giới thiệu GDI+  Đối tượng Graphic ● Các hàm vẽ ● Các hàm tô màu  Pen  Brush  Invalidate  Tạo form có hình dạng bất kỳ  Kỹ thuật chống flicker Giới thiệu GDI+  Thực hiện vẽ trên môi trường .NET  Cung cấp tập namespace, lớp hướng đối tượng lớn cho việc thực hiện vẽ  Device Context được thay thế bằng đối tượng Graphic  Mỗi control đều có đối tượng Graphic để vẽ nó, bao gồm Form, Button, TextBox, …. Các namespace Tên Mô tả System.Drawing Định nghĩa những đối tượng vẽ cơ bản (Fonts, Pens, Brushes, ) và đối tượng Graphic System.Drawing.Drawing2D Cung cấp những đối tượng vẽ vector 2 chiều như gradient brushes, gradient pens, System.Drawing.Image Thao tác với hình ảnh như thực hiện vẽ, lấy thông tin kích thước ảnh, … System.Drawing.Printing Thực hiện in; cung cấp những đối tượng giao tác với printer System.Drawing.Text Thực hiện vẽ với các font. Đối tượng Graphic  Đối tượng quan trọng của GDI+  Mọi thao tác vẽ đều thực hiện trên đối tượng Graphic  Mọi control đều có thuộc tính Graphic dùng để vẽ chính nó  Có 2 cách truy xuất ● Sự kiện Paint : e.Graphics.DrawLine( ) ● Hàm CreateGraphic() ảnh vẽ sẽ mất đi khi Form được Reload Đối tượng Graphic  Ví dụ private void Form1_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawRectangle(Pens.Blue, 10, 10, 100, 100); } Đối tượng Graphic  Danh sách các hàm vẽ Hàm Ý nghĩa DrawArc Vẽ hình cung ellipse DrawEllipse Vẽ hình ellipse DrawLine Vẽ đường thẳng DrawPolygon Vẽ đa giác DrawRectangle Vẽ hình chữ nhật DrawString Vẽ chuổi DrawImage Vẽ hình ảnh Đối tượng Graphic  Ví dụ : // tạo bút vẽ Pen pen = new Pen(Color.Blue, 2); // vẽ đường từ điểm 0, 0 đến 100, 100 e.Graphics.DrawLine(pen, 0, 0, 100, 100); Đối tượng Graphic  Ví dụ : // tạo bút vẽ Pen pen = new Pen(Color.Blue, 2); // vẽ hình ellipse nằm trong hình chữ nhật // từ điểm 0,0 có độ rộng 300, cao 200 e.Graphics.DrawEllipse(pen, 0, 0, 300, 200); Đối tượng Graphic  Ví dụ : // tạo bút vẽ Pen pen = new Pen(Color.Blue, 2); // vẽ cung ellipse nằm trong hình chữ nhật // từ điểm 0,0 có độ rộng 300, cao 200 // vẽ từ góc 90 độ vẽ tiếp 180 độ e.Graphics.DrawArc(pen, 0, 0, 300, 200, 90, 180); [...]... Flicker  Cách 2 : ● ● ● Override lại sự kiện vẽ ảnh nền mặc định của Window để không thực hiện vẽ ảnh nền vì nó sẽ được vẽ trên MemDC Vẽ ảnh lên 1 Bitmap trước; sau đó mới vẽ vào DC Thay vì vẽ trực tiếp trên Device Context, ta sẽ vẽ vào 1 vùng nhớ đệm (double buffer) Khi mọi thao tác vẽ trên vùng đệm xong, ta mới vẽ vào Device Context Kỹ thuật chống Flicker Kỹ thuật chống Flicker Kỹ thuật chống Flicker... trên biên this.Region = new Region(path); Tạo form có hình dạng bất kỳ Kỹ thuật chống Flicker  Khi sự kiện Paint được gọi, mọi đối tượng sẽ được vẽ trực tiếp trên Device Context (đối tượng Graphics) Điều này sẽ gây hiện tượng flicker trong 3 trường hợp sau: ● ● ● Resize màn hình hoặc user control Animation (Kĩ thuật Timer + Thay đổi tọa độ đối tượng vẽ) Drag & Drop 1 đối tượng Kỹ thuật chống Flicker... 300); // tạo vùng hiển thị của form dựa trên biên this.Region = new Region(path); Tạo form có hình dạng bất kỳ Tạo form có hình dạng bất kỳ  Ví dụ : // tạo biên cho form GraphicsPath path = new GraphicsPath(); path.AddArc(0, 0, 300, 300, 0, 180); path.AddLine(0, 150, 0, 0); path.AddLine(0, 0, 300, 0); path.AddLine(300, 0, 300, 150); // tạo vùng hiển thị của form dựa trên biên this.Region = new Region(path);... Bitmap("images/image1.jpg"); TextureBrush texture = new TextureBrush(image); e.Graphics.FillEllipse(texture, 100, 100, 400, 200); Invalidate   Hành động Invalidate dùng để thực hiện vẽ lại Form hoặc 1 vùng nào đó trên Form Sử dụng hàm : Invalidate private void timer1_Tick(object sender, EventArgs e) { this.Invalidate(); } Tạo form có hình dạng bất kỳ   Thuộc tính Region : xác định vùng hiển thị của form Lớp GraphicsPath . Lập trình trên môi trường Windows GDI+ Trần Duy Hoàng tdhoang@hcmus.edu.vn Nội dung  Giới thiệu GDI+  Đối. màu  Pen  Brush  Invalidate  Tạo form có hình dạng bất kỳ  Kỹ thuật chống flicker Giới thiệu GDI+  Thực hiện vẽ trên môi trường .NET  Cung cấp tập namespace, lớp hướng đối tượng lớn cho việc thực hiện vẽ  Device. với các font. Đối tượng Graphic  Đối tượng quan trọng của GDI+  Mọi thao tác vẽ đều thực hiện trên đối tượng Graphic  Mọi control đều có thuộc tính Graphic dùng để vẽ chính nó  Có 2 cách

Ngày đăng: 08/08/2014, 18:22

Từ khóa liên quan

Mục lục

  • Slide 1

  • Slide 2

  • Slide 3

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Slide 19

  • Slide 20

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

  • Đang cập nhật ...

Tài liệu liên quan