1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình C winform GUI

33 356 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 33
Dung lượng 216,63 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUIGiáo trình C winform GUI

Trang 1

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

GDI+

Tr n Duy Hoàng ầ

Trang 3

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ó, ể ẽ

Trang 4

Các namespace

(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 ớ

Trang 5

Đ 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( ) ự ệ

Trang 10

Đ 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);

Trang 12

Point[] polygon = new Point[4];

polygon[0] = new Point(10, 10);

polygon[1] = new Point(100, 180);

polygon[2] = new Point(200, 180);

polygon[3] = new Point(200, 10);

e.Graphics.DrawPolygon(pen, polygon);

Trang 14

Đ i t ố ượ ng Graphic

 Ví d :ụ

// t o bút v ạ ẽ

Pen pen = new Pen ( Color Blue, 2);

// t o các đi m c a đ ạ ể ủ ườ ng cong

Point start = new Point (100, 100);

Point control1 = new Point (200, 50);

Point control2 = new Point (350, 100);

Point end = new Point (100, 300);

// v đ ẽ ườ ng cong

e.Graphics.DrawBezier(pen, start, control1, control2, end);

Trang 15

Đ i t ố ượ ng Graphic

 Ví d :ụ

// v chu i t i v trí 0,0 ẽ ỗ ạ ị

string text = "Hello world" ;

Font font = new Font ( "Arial" , 16);

e.Graphics.DrawString(text, font, Brushes Blue, 0, 0);

// v hình t i v trí 50,50 ẽ ạ ị

Trang 17

Đ i t ố ượ ng Graphic

 Ví d :ụ

// Create solid brush.

SolidBrush blueBrush = new SolidBrush ( Color Blue);

// Fill rectangle to screen.

e.Graphics.FillRectangle(blueBrush, 0, 0, 200, 200);

Trang 18

 Dùng Pen do t t o thông qua l p Penự ạ ớ

Pen pen = new Pen (Color.Red, 2)

Trang 20

 Ví d : TextureBrushụ

Bitmap image = new Bitmap ( "images/image1.jpg" );

TextureBrush texture = new TextureBrush (image); e.Graphics.FillEllipse(texture, 100, 100, 400, 200);

Trang 22

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 : dùng đ t o đớ ể ạ ường biên

cho vùng hi n th c a formể ị ủ

Trang 23

T o form có hình d ng b t kỳ ạ ạ ấ

 Ví d :ụ

// trong s kiên form load ự

// t o biên cho form có hình ellipse ạ

GraphicsPath path = new GraphicsPath ();

path.AddEllipse(0, 0, 300, 300);

// t o vùng hi n th c a form d a trên biên ạ ể ị ủ ự

this Region = new Region (path);

Trang 24

T o form có hình d ng b t kỳ ạ ạ ấ

Trang 25

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);

Trang 26

T o form có hình d ng b t kỳ ạ ạ ấ

Trang 27

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

Trang 28

K thu t ch ng Flicker ỹ ậ ố

● Trong s ki n Load c a Form ta chèn đo n code ự ệ ủ ạ sau

Trang 29

K thu t ch ng Flicker ỹ ậ ố

● 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 ẽ ệ ớ ẽ

Trang 30

K thu t ch ng Flicker ỹ ậ ố

Trang 31

K thu t ch ng Flicker ỹ ậ ố

Trang 32

K thu t ch ng Flicker ỹ ậ ố

Trang 33

Th o lu n ả ậ

Ngày đăng: 20/11/2014, 23:19

TỪ KHÓA LIÊN QUAN