Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 12

Đồ 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); CClientDC dc(this) CClientDC dc(this)
dc.LineTo(pointB);
dc.Rectangle(l,t,r,b); dc.Ellipse(l,t,r,b);

CClientDC dc(this)
CClientDC dc(this)
dc.RoundRect(l,t,r,b,w,h);
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 bút vẽ đặc
– PS_DASH bút vẽ gạch
– PS_DOT bút vẽ chấm
– PS_DASHDOT bút vẽ chấm
gạch
• 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

You might also like