intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Lập trình Windows Thư viện đồ họa GDI (phần 4)

Chia sẻ: Nguyen Kien | Ngày: | Loại File: PDF | Số trang:7

140
lượt xem
38
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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

Chủ đề:
Lưu

Nội dung Text: Lập trình Windows Thư viện đồ họa GDI (phần 4)

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. Cám ơn - Hỏi & Đáp C4W - GDI - Nguyen Tri Tuan - DH.KHTN Tp.HCM Summer 2004 73 37
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2