Danh mục

Bài giảng Lập trình Windows: Chương 4 - Xử lý đồ họa & văn bản

Số trang: 13      Loại file: pdf      Dung lượng: 192.26 KB      Lượt xem: 14      Lượt tải: 0    
Jamona

Phí tải xuống: 2,000 VND Tải xuống file đầy đủ (13 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Nội dung chính của chương 4 Xử lý đồ họa & văn bản của bài giảng lập trình Windows trình bày về cơ chế đồ họa trên Windows – Device Context, lớp CDC và một số lệnh đơn giản, các đối tượng khác: CPen, CBrush, CRgn,…thông điệp WM_PAINT và cửa sổ ảo, xử lý văn bản.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình Windows: Chương 4 - Xử lý đồ họa & văn bảnChương 4. Xử lý đồ họa & văn bản  Cơ chế đồ họa trên Windows – Device Context  Lớp CDC và một số lệnh đơn giản  Các đối tượng khác: CPen, CBrush, CRgn,…  Thông điệp WM_PAINT và cửa sổ ảo  Xử lý văn bản  Ánh xạ khung nhìn 14.1. Giới thiệu ngữ cả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,... Kết quả Vẽ DC  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 để xử lý đồ 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. 24.2. Lớp CDC, CClientDC  Thư viện MFC cung cấp một lớp để xử lý đồ họa là CDC (Class Device Context). Lớp này bao gói đối tượng HDC và các hàm API phục vụ đồ họa Chứa các Lớp CDC Chứa các tham lệnh vẽ số đồ họa GDI DC  Xác định DC của một cửa sổ (dùng bên trong lớp 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, trục X từ trái sang phải, Y từ trên xuống  Một số lệnh cơ 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 ); 34.3. Một số đối tượng lớp đồ họa  Thư việ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 viên cơ 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 viên cơ bản sau: CBrush ( màu ); CBrush ( kiểu, màu ); CRgn : cung cấp vùng giới hạn vẽ, gồm các thành viên cơ 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 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(). 44.3. Một số đối tượng lớp đồ họa... SelectObject(...) Tô màu đỏ DC cửa sổ Vẽ màu xanh Giới hạn nhìn thấy 54.4. Thông điệp WM_PAINT  Mọi dữ liệu hiện trên cửa sổ sẽ bị mất nếu có sự thay đổi trên cửa sổ đó.  Thông điệp WM_PAINT được phát sinh khi có yêu cầu cập nhật lại nội dung trên cửa sổ, do:  Tác động của người dùng như thay đổi kích thước, kích hoạt,...  Gọi hàm CWnd :: Invalidate() hoặc CWnd :: UpdateWindow().  Để dữ liệu luôn tồn tại trên cửa sổ cần phải thực hiện mọi lệnh hiện và vẽ chỉ trong hàm xử lý thông điệp này. Tác động Phát sinh Lớp cửa sổ - CS của USER thông điệp WM_PAINT void OnPaint() { ... } Hiển thị nội dung 64.4. Thông điệp WM_PAINT...  Trong hàm xử lý thông điệp WM_PAINT phải sử dụng đối tượng lớp CPaintDC thay cho lớp CDC thông thường để thực hiện vẽ.  Mẫu hàm xử lý thông điệp WM_PAINT như sau: afx_msg void OnPaint() { CPaintDC dc( this ); ... viết các lệnh xử lý đồ họa ... }  Lớp CPaintDC được kế thừa từ lớp CDC. Hàm O ...

Tài liệu được xem nhiều: