Đồ Hoạ trên VC6.

0(MFC)
Giảng viên : Trần Anh Tuấn Đại học Khoa học Tự nhiên

Nội dung
• • • • Quy trình làm việc với đồ hoạ Các đối tượng đồ hoạ Bút vẽ chổi vẽ Biến đổi toạ độ

Quy trình làm việc với đồ hoạ
• GDI(Graphic Device Interface) hỗ trợ cho giao diện thiết bị đồ hoạ như màn hình , máy in với các công cụ như Pen , Brush , Font , Bitmap , Pallete , Region. • DC (Device Context: Ngữ cảnh thiết bị)

Quy trình làm việc với đồ hoạ
• Có hai cách tiếp cận để hiển thị đối tượng đồ hoạ:

Khuyết điểm cách thứ nhất: vẽ lại toàn bộ đối tượng đã vẽ Khuyết điểm của cách thứ hai là: cửa sổ không tự động vẽ lại

Các đối tượng Đồ hoạ
CClientDC dc(this); dc.MoveTo(pointA); dc.LineTo(pointB); CClientDC dc(this) dc.Rectangle(l,t,r,b); CClientDC dc(this) dc.Ellipse(l,t,r,b);

CClientDC dc(this) dc.RoundRect(l,t,r,b,w,h);

CClientDC dc(this) dc.PolyBezier (aPoint,4);

Bút vẽ , chổi vẽ

Bút vẽ , chổi vẽ
• Bút vẽ (CPen) • Cách dùng :
– – – – – – CPaintDC dc(this);// hay CClientDC dc(this) CPen *hpen , *hpenPrev; hpen = new CPen(kiểu,độ rộng, màu); hpenPrev = dc.SelectObject(hpen); Vẽ đối tượng delete dc.SelectObject(hpenPrev);

Bút vẽ , chổi vẽ
• Bút vẽ (CPen) • Kiểu:
– – – – PS_SOLID PS_DASH PS_DOT PS_DASHDOT gạch bút bút bút bút vẽ đặc vẽ gạch vẽ chấm vẽ chấm

• Ngoài ra còn có thể tạo bút vẽ bằng :
– GetStockObject , CreatePenIndirect

Bút vẽ , chổi vẽ
• Chổi vẽ (CBrush) • Cách dùng:
– – – – – – CPaintDC dc(this);// hay CClientDC dc(this) CBrush *hbrush , *hbrushPrev;; hbrush = new CBrush([kiểu,] màu); hbrushPrev = dc.SelectObject(hbrush); Vẽ đối tượng delete dc.SelectObject(hbrushPrev);

Bút vẽ , chổi vẽ
• Chổi vẽ (CBrush) • Kiểu:
– – – – – – HS_BDIAGONAL; HS_CROSS; HS_DIAGCROSS; HS_FDIAGONAL; HS_HORIZONTAL; HS_VERTICAL;

• Ngoài ra còn có thể tạo chổi vẽ bằng :
– CreateSolidBrush , CreateHatchBrush , CreatepatternBrush , CreateBrushIndirect

Biến đổi toạ độ
• • • • • CRect rt; (control variable) m_v m_v..GetClientRect(&rt); m_v.ClientToScreen(&p); ScreenToClient(&p);

•Hết

Sign up to vote on this title
UsefulNot useful