1
Chương 4. Xử đồ họa & văn bản
chế đồ họa trên Windows Device Context
Lớp CDC một số lệnh đơn giản
c đối tượng khác: CPen, CBrush, CRgn,
Thông điệp WM_PAINT cửa sổ ảo
Xử lý văn bản
Ánh xạ khung nhìn
2
4.1. Giới thiệu ngcảnh thiết b
Ngữ cảnh thiết bị (Device Context - DC) là một cấu trúc GDI lưu thông tin
cho việc hiển thị văn bản và hình ảnh trên thiết bị ra tương thích. Nó chứa
đựng các đối tượng đồ họa như nét vẽ, mẫu tô, chế độ đồ họa,...
Mỗi đối tượng DC có một số hiệu định danh gọi là HDC (Handle Device
Context). Windows sử dụng số hiệu này để xlý đồ họa.
HDC là một kiểu dữ liệu lưu số hiệu ngữ cảnh thiết bị.
Mỗi cửa sổ có thể có nhiều đối tượng DC khác nhau tại những thời điểm
xử lý khác nhau.
DC
VẽKết quả
3
4.2. Lớp CDC, CClientDC
Thư viện MFC cung cấp một lớp để xlý đồ họa là CDC (Class Device Context).
Lớp này bao gói đối tượng HDC và các hàm API phc v đồ họa
Xác định DC của một cửa sổ (ng bên trong lp cửa sổ)
CDC * CWnd :: GetDC(); hoặc CDC * CWnd :: GetWindowDC();
CClientDC object ( this );
Hệ tọa độ gốc ở góc trái trên, trc X ttrái sang phải, Y từ trên xuống
Một số lệnh bản trên CDC
MoveTo( x,y ); LineTo( x,y ); Ellipse( x1,y1, x2,y2 ); Rectangle( x1,y1, x2,y2 );
SetROP2( R2_NOT / R2_MASKPEN/... ); AngleArc( x,y, r, start, sweep );
Polyline( LPPOINT , count ); FloodFill( x,y, color );
GDI DC
Lớp CDC
Chứa các
lệnh vẽ Chứa các tham
số đồ họa
4
4.3. Một số đối tượng lớp đồ ha
Tviện MFC cung cấp một số lớp hỗ trợ đồ họa gồm
CPen : cung cấp màu vẽ, gồm các thành vn bản sau:
CPen( kiểu, độ-dày, màu ); kiểu{PS_SOLID, PS_DOT, PS_DASH,...}
CBrush : cung cấp chế độ tô nền, gồm các thành vn bản sau:
CBrush ( màu );
CBrush ( kiểu, màu );
CRgn : cung cấp vùng gii hạn vẽ, gồm các thành vn bản sau:
CreateRectRgn( x1,y1, x2,y2 );
CreateElipticRgn( x1,y1, x2,y2 );
Hộp thoại chọn màu: CColorDialog trong thư viện <afxdlgs.h> gồm các
hàm sau:
CColorDialog( COLORREF màu);
int CColorDialog :: DoModal(); { IDOK, IDCANCEL }
COLORREF CColorDialog :: GetColor();
Các đối tượng trên được đặt vào DC bởi lệnh CWnd :: SelectObject().
5
4.3. Một số đối tượng lớp đồ ha...
DC cửa sổ
SelectObject(...)
Vẽ màu xanh
Tô màu
đỏ
Giới hạn
nhìn thấy