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

Bài giảng Lập trình trên Windows: Chương 4 - Trần Minh Thái

35 17 0

Đ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 35
Dung lượng 349,77 KB

Nội dung

Bài giảng Lập trình trên Windows: Chương 4 cung cấp cho người học các kiến thức: GDI+, các cấu trúc lưu trữ cơ bản, lớp graphics, sự kiện paint làm việc với pen và brush, làm việc với color, font và text, làm việc với image. Mời các bạn cùng tham khảo nội dung chi tiết.

Lập trình Windows Chương GDI+ Nội dung • GDI+ • Các cấu trúc lưu trữ • Lớp Graphics • Sự kiện Paint • Làm việc với Pen Brush • Làm việc với Color, Font Text • Làm việc với Image GDI+ What is GDI+? • GDI+ cung cấp tập lớp để thực chức đồ họa Windows Forms • GDI+ nằm System.Drawing.dll Tổng quan lớp • Namespace • using System.Drawing • using System.Drawing.Drawing2D • Các lớp • • • • • • • • • Point/Points Rectangle/RectangleF Size/SizeF Color Pen/Pens/SystemPens Brush/Brushes/SystemBrushes Font/FontFamily Bitmap/Image/Icon Graphics Các cấu trúc lưu trữ Cấu trúc Point • Properties Point • X: int • Y: int • IsEmpty: bool • Methods • void Offset(int dx, int dy) Point p=new Point(2,5); Cấu trúc PointF • Properties PointF • X: float • Y: float • IsEmpty: bool PointF p=new PointF(2,5); Cấu trúc Size • Properties Size • Width: int • Height: int • IsEmpty: bool Size s=new Size(2,5); Cấu trúc SizeF • Properties • Width: float • Height: float • IsEmpty: bool SizeF • Methods: • Size ToSize() • PointF ToPointF() Size s=new Size(2,5); Cấu trúc Rectangle/ RectangleF  Properties RectangleF • Width: int/float • Height : int/float • Left, Top, Right, Bottom: int/float • X, Y: int/float • IsEmpty: bool  Methods • bool Contains(Point(F) p) • bool Contains(Rectangle(F) r) Rectangle rect2 = new Rectangle(20, 30, 30, 10); 10 Lớp Pen/Pens • Được dùng để màu, width, styles nét vẽ • Không cho thừa kế Pen ourpen=new Pen(Color.Blue,5);  Pens cung cấp 141 pen Pens.AliceBlue Pens.AntiqueWhite … Pens.Yellow Pens.YellowGreen 21 Lớp Brush/Brushes • Được dùng để tơ màu hình • Lớp Abstract nên khơng thể tạo đối tượng • Lớp dẫn xuất • • • • • HatchBrush LinearGradientBrush PathGradientBrush SolidBrush TextureBrush SolidBrush myBrush = new SolidBrush(Color.Blue); 22 Lớp Brush/Brushes • Brushes cung cấp 141 brush Brushes.AliceBlue Brushes.AntiqueWhite … Brushes.Yellow Brushes.YellowGreen • SolidBrush: màu • SolidBrush brush = new SolidBrush(Color); • TextureBrush: ảnh • TextureBrush b = new TextureBrush(bmp); • WrapMode: Clamp: Vẽ lần Tile: default TileFlipX/TileFlipY:Lật hướng X/Y TileFlipXY: Lật hướng 23 Lớp Brush/Brushes • HatchBrush • HatchStyle: 56 kiểu • Màu ForeColor • Màu BackColor HatchBrush brush = new HatchBrush(HatchStyle.Cross, Color.LawnGreen); 24 Lớp Brush/Brushes • Gradient Brush • • • • Màu bắt đầu Màu kết thúc Hướng gradient Vùng gradient (option) 25 Lớp Font • Tên Font, kích thước, kiểu dáng (đậm, nghiêng, …) • Tạo Font • • • • f = new Font(Font fName, FontStyle style); f = new Font(string fontName, float size); f = new Font(string fontName, float size, FontStyle style); … 26 Một số phương thức vẽ Phương thức DrawLine() • Phương thức DrawLine() lớp Graphics dùng để vẽ đường thẳng hình Danh sách Overloaded: public public public public void void void void DrawLine(Pen, DrawLine(Pen, DrawLine(Pen, DrawLine(Pen, Point, Point); PointF, PointF); int, int, int, int); float, float, float, float); 28 Phương thức DrawString() • Hiện text lên hình không cần phải thông qua control a,b,c Danh sách Overloaded: public void DrawString(string, Font, Brush, PointF); public void DrawString(string, Font, Brush, RectangleF); public void DrawString(string, Font, Brush, PointF, StringFormat); public void DrawString(string, Font, Brush, RectangleF, StringFormat); public void DrawString(string, Font, Brush, float, float); public void DrawString(string, Font, Brush, float, float, StringFormat); StringFormat sf = new StringFormat(); sf.FormatFlags = StringFormatFlags DirectionVertical; sf.Alignment = StringAlignment.Center; 29 Phương thức DrawImage() • Được dùng để vẽ image dùng đối tượng image (gif, jpg, bmp, …) Constructors: public public public public public void void void void void DrawImage(Image, DrawImage(Image, DrawImage(Image, DrawImage(Image, DrawImage(Image, Point) Point[]) PointF) PointF[]) Rectangle) 30 Vẽ ảnh JPG protected override void OnPaint(PaintEventArgs p_event) { int x_coord,y_coord; Image testimage=Image.FromFile("Water lilies.jpg"); Graphics graf=p_event.Graphics; x_coord=10; y_coord=10; graf.DrawImage(testimage, x_coord, y_coord); } 31 Invalidate Invalidate( ) Invalidate(Boolean) Invalidate(Rectangle) Invalidate(Region) Invalidate(Rectangle, Boolean) Invalidate(Region, Boolean) Invalidate Vùng vùng control Nếu Boolean true invaludate control Invalidates vùng hình chữ nhật Invalidates region Invalidates vùng Rectangle, Boolean true invalidate control Invalidates vùng region, Boolean true invalidate control 32 Hủy đối tượng • Khi dùng xong đối tượng phải hủy đối tượng • Cú pháp: obj.Dispose() • Chú ý: Hủy đối tượng tạo từ khóa new 33 Dữ liệu Enum • Chuyển giá trị enum thành chuỗi • String[] s = Enum.GetNames(typeof(KieuEnum)); • Chuyển chuỗi sang enum • KieuEnum value = (KieuEnum)Enum.Parse(typeof(KieuEnum), s); 34 Q&A 35 35 ... = new Rectangle(20, 30, 30, 10); 10 Cấu trúc Color • Được dùng để tạo màu cho graphics GDI+  141 màu: Color.AliceBlue Color.AntiqueWhite … Color.Yellow Color.YellowGreen  Pha màu: • Color Color.FromArgb(int... phương thức OnPaint() Cách 2: Bắt kiện Paint Cách 3: Dùng phương thức ctr.CreateGraphic() Cách 4: Dùng phương thức tĩnh Graphics: FromImage, FromHwnd, FromHdc để vẽ bitmap, window handle window... base.OnPaint(e); } private void mainForm_Paint(object sender, PaintEventArgs e) { Graphics g=e.Graphics; … } 14 Lớp Graphics private void PaintMe(Control testcontrol) { Graphics g=testcontrol.CreateGraphics();

Ngày đăng: 08/05/2021, 11:55

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w