Lập trình Windows Thư viện đồ họa GDI (phần 4)
lượt xem 38
download
MFC framework tích hợp sẵn kỹ thuật in ấn, thực hiện phần lớn các công việc; giúp người lập trình tiết kiệm rất nhiều công sức và loại bỏ nhiều sự phức tạp như khi sử dụng Windows SDK động tạo và xóa Printer DC
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Lập trình Windows Thư viện đồ họa GDI (phần 4)
- Kỹ thuật in của MFC Chọn option hỗ trợ in trong AppWizard C4W - GDI - Nguyen Tri Tuan - DH.KHTN Tp.HCM Summer 2004 61 Kỹ thuật in của MFC Ứng dụng đơn giản có hỗ trợ Print và Print Preview của MFC C4W - GDI - Nguyen Tri Tuan - DH.KHTN Tp.HCM Summer 2004 62 31
- Kỹ thuật in của MFC - Tổng quan Giới thiệu ® MFC framework tích hợp sẵn kỹ thuật in ấn, § thực hiện phần lớn các công việc; giúp người lập trình tiết kiệm rất nhiều công sức và loại bỏ nhiều sự phức tạp như khi sử dụng Windows SDK ® Tự động tạo và xóa Printer DC ® Tự động gọi StartDoc/EndDoc, StartPage/EndPage ® Hỗ trợ hộp thoại theo dõi trạng thái của print job; khả năng hủy bỏ in (Abort procedure) ® Khả năng Print Preview,… C4W - GDI - Nguyen Tri Tuan - DH.KHTN Tp.HCM Summer 2004 63 Kỹ thuật in của MFC - Tổng quan…(tt) Giới thiệu…(tt) ® Các hàm quan trọng của CView liên quan đến in ấn § Được gọi khi bắt đầu print job. OnPreparePrinting() Xác định số trang in;… Được gọi trước khi việc in bắt đầu. OnBeginPrinting() Định nghĩa các tài nguyên sử dụng cho việc in (Font, Brush,…) Được gọi trước khi in mỗi trang. OnPrepareDC() Thay đổi tính chất của Printer DC Được gọi để thực hiện in mỗi trang. OnPrint() In Header, Footer,… và gọi đến hàm OnDraw để in phần chính của trang Được gọi khi kết thúc print job. OnEndPrinting() Giải phóng các tài nguyên C4W - GDI - Nguyen Tri Tuan - DH.KHTN Tp.HCM Summer 2004 64 32
- Kỹ thuật in của MFC - In trên nhiều trang Tạo 1 ứng dụng bằng MFC AppWizard với các ® options Single Document và Print and Print Preview Thêm đoạn lệnh sau vào hàm ® CxxxView::OnDraw // Chuyển đổi 1 pixel = 1/100 inch pDC->SetMapMode(MM_LOENGLISH); // m_numRects: s ố hình chữ nhật muốn vẽ // W = H = 100 pixel, kho ảng cách 20 pixel for (int i=0; i < m_numRects; i++) pDC->Rectangle(0, -i*120, 100, -(i+1)*120+20); C4W - GDI - Nguyen Tri Tuan - DH.KHTN Tp.HCM Summer 2004 66 33
- Kỹ thuật in của MFC - In trên nhiều trang…(tt) Các hình chữ nhật không hiển thị đúng trên nhiều trang in C4W - GDI - Nguyen Tri Tuan - DH.KHTN Tp.HCM Summer 2004 67 Kỹ thuật in của MFC - In trên nhiều trang…(tt) Các bước thực hiện để in nhiều trang ® B1. Thông báo cho MFC biết số trang cần in § void CxxxView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo) { CxxxDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); int pageHeight = pDC->GetDeviceCaps(VERTRES); int logPixelsY = pDC->GetDeviceCaps(LOGPIXELSY); int rectHeight = (int)(1.2 * logPixelsY); int numPages = pDoc->m_numRects*rectHeight/pageHeight + 1; pInfo->SetMaxPage(numPages); } C4W - GDI - Nguyen Tri Tuan - DH.KHTN Tp.HCM Summer 2004 68 34
- Kỹ thuật in của MFC - In trên nhiều trang…(tt) Các hình chữ nhật đã hiển thị trên nhiều trang in, nhưng nội dung các trang giống hệt nhau C4W - GDI - Nguyen Tri Tuan - DH.KHTN Tp.HCM Summer 2004 69 Kỹ thuật in của MFC - In trên nhiều trang…(tt) Các bước thực hiện để in nhiều trang…(tt) ® B2. Định nghĩa lại hàm CxxxView::OnPrepareDC § void CxxxView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) { if (pDC->IsPrinting()) { int pageHeight = pDC->GetDeviceCaps(VERTRES); int originY = pageHeight * (pInfo->m_nCurPage - 1); pDC->SetViewportOrg(0, -originY); } CView::OnPrepareDC(pDC, pInfo); } C4W - GDI - Nguyen Tri Tuan - DH.KHTN Tp.HCM Summer 2004 70 35
- Kỹ thuật in của MFC - In trên nhiều trang…(tt) Dùng ClassWizard định nghĩa lại hàm OnPrepareDC C4W - GDI - Nguyen Tri Tuan - DH.KHTN Tp.HCM Summer 2004 71 Kỹ thuật in của MFC - In trên nhiều trang…(tt) Các hình chữ nhật đã hiển thị đúng trên nhiều trang C4W - GDI - Nguyen Tri Tuan - DH.KHTN Tp.HCM Summer 2004 72 36
- Cám ơn - Hỏi & Đáp C4W - GDI - Nguyen Tri Tuan - DH.KHTN Tp.HCM Summer 2004 73 37
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Lập trình Window với C#.net
618 p | 4444 | 2521
-
Bài giảng Lập trình Windows: Lập trình cơ sở dữ liệu với thư viện ADO
63 p | 442 | 137
-
Lập trình Windows Thư viện đồ họa GDI (phần 1)
10 p | 528 | 78
-
LẬP TRÌNH WINDOWS - Thư viện liên kết động (DLL – Dynamic Link Library)
18 p | 335 | 56
-
LẬP TRÌNH WINDOWS - Thư viện liên kết động
43 p | 204 | 55
-
Lập trình Windows Thư viện đồ họa GDI (phần 3)
10 p | 163 | 44
-
LẬP TRÌNH WINDOWS - Thư viện đồ họa GDI (Graphics Device Interface)
37 p | 215 | 43
-
LẬP TRÌNH WINDOWS - Thư viện lập trình Multi-Media
17 p | 171 | 35
-
Lập trình windows - Thư viện đồ họa GDI
58 p | 106 | 25
-
Lập trình windows - Thư viện liên kết động
43 p | 124 | 20
-
LẬP TRÌNH WINDOWS - Lập trình cơ sở dữ liệu với thư viện ADO(ADO – ACTIVEX DATA OBJECT)
63 p | 73 | 9
-
Bài giảng Lập trình Windows: Chương 4 - Lập trình đồ họa với thư viện GDI (Graphics Device Interface)
47 p | 123 | 9
-
Bài giảng Lập trình Windows: Chương 9 - Lập trình thư viện động
9 p | 88 | 8
-
Bài giảng Lập trình C trên Windows: Thư viện lập trình Multi-Media
7 p | 65 | 6
-
Bài giảng Lập trình Windows: Phần 2 - Đại học Hàng Hải
49 p | 100 | 5
-
Bài giảng Lập trình Windows - Chương 9: Lập trình thư viện động (2016)
9 p | 77 | 5
-
Bài giảng Lập trình Windows: Bài 8 - Trần Ngọc Bảo
43 p | 86 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn