120 likes | 274 Views
Đồ 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ạ.
E N D
Đồ 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ẽ (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);