Printing
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at Printing.
Microsoft Windows implements device-independent display. In MFC, this means that the same drawing calls, in the OnDraw
member function of your view class, are responsible for drawing on the display and on other devices, such as printers. For print preview, the target device is a simulated printer output to the display.
Your Role in Printing vs. the Framework's Role
Your view class has the following responsibilities:
Inform the framework how many pages are in the document.
When asked to print a specified page, draw that portion of the document.
Allocate and deallocate any fonts or other graphics device interface (GDI) resources needed for printing.
If necessary, send any escape codes needed to change the printer mode before printing a given page, for example, to change the printing orientation on a per-page basis.
The framework's responsibilities are as follows:
Display the Print dialog box.
Create a CDC object for the printer.
Call the StartDoc and EndDoc member functions of the
CDC
object.Repeatedly call the StartPage member function of the
CDC
object, inform the view class which page should be printed, and call the EndPage member function of theCDC
object.Call overridable functions in the view at the appropriate times.
The following articles discuss how the framework supports printing and print preview: