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

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

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); [...]... tượng Kỹ thuật chống Flicker  C ch 1 : ● Trong sự kiện Load c a Form ta chèn đoạn code sau Kỹ thuật chống 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... e.Graphics.DrawImage(image, 50, 50); Đối tượng Graphic  Danh sách c c hàm tô màu Hàm Ý nghĩa FillEllipse Tô hình ellipse FillPie Tô hình bánh FillPolygon Tô đa gi c FillRectangle Tô hình chữ nhật Đố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); Pen  Dùng Pen c sẵn thô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 : dùng để tạo đường biên cho vùng hiển thị c a form 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... Point(200, 10); e.Graphics.DrawPolygon(pen, polygon); Đối tượng Graphic  Ví dụ : // tạo bút vẽ Pen pen = new Pen(Color.Blue, 2); // vẽ hình bánh nằm trong hình chữ nhật // từ điểm 0,0 c độ rộng 300, cao 200 // vẽ từ g c 0 độ vẽ tiếp 90 độ e.Graphics.DrawPie(pen, 0, 0, 300, 200, 0, 90); Đố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... 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); 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 Graphic  Ví dụ : // tạo bút vẽ Pen pen = new Pen(Color.Blue, 2); // vẽ hình chữ nhật từ điểm 0,0 // c độ rộng 300, cao 200 e.Graphics.DrawRectangle(pen, 10, 10, 300, 200); Đối tượng Graphic  Ví dụ : // tạo bút vẽ Pen pen = new Pen(Color.Blue, 2); // vẽ đa gi c có 4 đỉnh 10,10 100,180 // 200,180 và 200,10 Point[] polygon = new Point[4];... đườ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); Đố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); //... 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); 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,... 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 Thảo luận 02/15/11 Trần Duy Hoàng - tdhoang@fit.hcmus.edu.vn 33/10 ... Pens.AliceBlue Pens.Aqua Pens.Black Pens.Brown … Dùng Pen do tự tạo thông qua lớp Pen Pen pen = new Pen (Color.Red, 2) Brush  Dùng Brush tự c ● Brushes.Lavendar ● Brushes.Ivory ● Brushes.LightBlue  TextureBrush: dùng ảnh image để vẽ  SolidBrush:Tạo c với màu đơn s c Brush  Ví dụ : TextureBrush Bitmap image = new Bitmap("images/image1.jpg"); TextureBrush texture = new TextureBrush(image); e.Graphics.FillEllipse(texture, . 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. 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 ấ. 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 đ

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

TỪ KHÓA LIÊN QUAN