Bài giảng Đồ hoạ trên VC6.0(MFC) do Trần Anh Tuấn biên soạn cung cấp cho các bạn những nội dung về 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ạ độ trong đồ họa. Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức về lĩnh vực này.
Trang 1Đ Ho trên VC6.0(MFC) ồ ạ
Gi ả ng viên : Tr ầ n Anh Tu ấ n
Đ ạ i h ọ c Khoa h ọ c T ự nhiên
Trang 2N 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 đ ế ổ ạ ộ
Trang 3Quy 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 ) ữ ả ế ị
Trang 4Quy 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 a cách th hai là: c a s ế ể ủ ứ ử ổ
không t đ ng v l iự ộ ẽ ạ
Khuy t đi m cách th nh t: v l i toàn ế ể ứ ấ ẽ ạ
b đ i t ng đã vộ ố ượ ẽ
Trang 5Cá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);
Trang 6Bút v , ch i v ẽ ổ ẽ
Trang 7Bú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);
Trang 8Bút v , ch i v ẽ ổ ẽ
• Bút v (CPen) ẽ
• Ki u: ể
• Ngoài ra còn có th t o bút v b ng : ể ạ ẽ ằ
– GetStockObject , CreatePenIndirect
Trang 9Bú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);
Trang 10Bú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
Trang 11•H t ế