CPrintInfo Structure

 

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 CPrintInfo Structure.

Stores information about a print or print-preview job.

Syntax

struct CPrintInfo  

Members

Public Methods

Name Description
CPrintInfo::GetFromPage Returns the number of the first page being printed.
CPrintInfo::GetMaxPage Returns the number of the last page of the document.
CPrintInfo::GetMinPage Returns the number of the first page of the document.
CPrintInfo::GetOffsetPage Returns the number of the pages preceding the first page of a DocObject item being printed in a combined DocObject print job.
CPrintInfo::GetToPage Returns the number of the last page being printed.
CPrintInfo::SetMaxPage Sets the number of the last page of the document.
CPrintInfo::SetMinPage Sets the number of the first page of the document.

Public Data Members

Name Description
CPrintInfo::m_bContinuePrinting Contains a flag indicating whether the framework should continue the print loop.
CPrintInfo::m_bDirect Contains a flag indicating whether the document is being printed directly (without displaying the Print dialog box).
CPrintInfo::m_bDocObject Contains a flag indicating whether the document being printed is a DocObject.
CPrintInfo::m_bPreview Contains a flag indicating whether the document is being previewed.
CPrintInfo::m_dwFlags Specifies DocObject printing operations.
CPrintInfo::m_lpUserData Contains a pointer to a user-created structure.
CPrintInfo::m_nCurPage Identifies the number of the page currently being printed.
CPrintInfo::m_nJobNumber Specifies the job number assigned by the operating system for the current print job
CPrintInfo::m_nNumPreviewPages Identifies the number of pages displayed in the preview window; either 1 or 2.
CPrintInfo::m_nOffsetPage Specifies offset of a particular DocObject's first page in a combined DocObject print job.
CPrintInfo::m_pPD Contains a pointer to the CPrintDialog object used for the Print dialog box.
CPrintInfo::m_rectDraw Specifies a rectangle defining the current usable page area.
CPrintInfo::m_strPageDesc Contains a format string for page-number display.

Remarks

CPrintInfo is a structure and does not have a base class.

The framework creates an object of CPrintInfo each time the Print or Print Preview command is chosen and destroys it when the command is completed.

CPrintInfo contains information about both the print job as a whole, such as the range of pages to be printed, and the current status of the print job, such as the page currently being printed. Some information is stored in an associated CPrintDialog object; this object contains the values entered by the user in the Print dialog box.

A CPrintInfo object is passed between the framework and your view class during the printing process and is used to exchange information between the two. For example, the framework informs the view class which page of the document to print by assigning a value to the m_nCurPage member of CPrintInfo; the view class retrieves the value and performs the actual printing of the specified page.

Another example is the case in which the length of the document is not known until it is printed. In this situation, the view class tests for the end of the document each time a page is printed. When the end is reached, the view class sets the m_bContinuePrinting member of CPrintInfo to FALSE; this informs the framework to stop the print loop.

CPrintInfo is used by the member functions of CView listed under "See Also." For more information about the printing architecture provided by the Microsoft Foundation Class Library, see Frame Windows and Document/View Architecture and the articles Printing and Printing: Multipage Documents.

Inheritance Hierarchy

CPrintInfo

Requirements

Header: afxext.h

CPrintInfo::GetFromPage

Call this function to retrieve the number of the first page to be printed.

UINT GetFromPage() const;

 

Return Value

The number of the first page to be printed.

Remarks

This is the value specified by the user in the Print dialog box, and it is stored in the CPrintDialog object referenced by the m_pPD member. If the user has not specified a value, the default is the first page of the document.

CPrintInfo::GetMaxPage

Call this function to retrieve the number of the last page of the document.

UINT GetMaxPage() const;

 

Return Value

The number of the last page of the document.

Remarks

This value is stored in the CPrintDialog object referenced by the m_pPD member.

CPrintInfo::GetMinPage

Call this function to retrieve the number of the first page of the document.

UINT GetMinPage() const;

 

Return Value

The number of the first page of the document.

Remarks

This value is stored in the CPrintDialog object referenced by the m_pPD member.

CPrintInfo::GetOffsetPage

Call this function to retrieve the offset when printing multiple DocObject items from a DocObject client.

UINT GetOffsetPage() const;

 

Return Value

The number of pages preceding the first page of a DocObject item being printed in a combined DocObject print job.

Remarks

This value is referenced by the m_nOffsetPage member. The first page of your document will be numbered the m_nOffsetPage value + 1 when printed as a DocObject with other active documents. The m_nOffsetPage member is valid only if the m_bDocObject value is TRUE.

CPrintInfo::GetToPage

Call this function to retrieve the number of the last page to be printed.

UINT GetToPage() const;

 

Return Value

The number of the last page to be printed.

Remarks

This is the value specified by the user in the Print dialog box, and it is stored in the CPrintDialog object referenced by the m_pPD member. If the user has not specified a value, the default is the last page of the document.

CPrintInfo::m_bContinuePrinting

Contains a flag indicating whether the framework should continue the print loop.

Remarks

If you are doing print-time pagination, you can set this member to FALSE in your override of CView::OnPrepareDC once the end of the document has been reached. You do not have to modify this variable if you have specified the length of the document at the beginning of the print job using the SetMaxPage member function. The m_bContinuePrinting member is a public variable of type BOOL.

CPrintInfo::m_bDirect

The framework sets this member to TRUE if the Print dialog box will be bypassed for direct printing; FALSE otherwise.

Remarks

The Print dialog is normally bypassed when you print from the shell or when printing is done using the command ID ID_FILE_PRINT_DIRECT.

You normally don't change this member, but if you do change it, change it before you call CView::DoPreparePrinting in your override of CView::OnPreparePrinting.

CPrintInfo::m_bDocObject

Contains a flag indicating whether the document being printed is a DocObject.

Remarks

Data members m_dwFlags and m_nOffsetPage are invalid unless this flag is TRUE.

CPrintInfo::m_bPreview

Contains a flag indicating whether the document is being previewed.

Remarks

This is set by the framework depending on which command the user executed. The Print dialog box is not displayed for a print-preview job. The m_bPreview member is a public variable of type BOOL.

CPrintInfo::m_dwFlags

Contains a combination of flags specifying DocObject printing operations.

Remarks

Valid only if data member m_bDocObject is TRUE.

The flags can be one or more of the following values:

  • PRINTFLAG_MAYBOTHERUSER

  • PRINTFLAG_PROMPTUSER

  • PRINTFLAG_USERMAYCHANGEPRINTER

  • PRINTFLAG_RECOMPOSETODEVICE

  • PRINTFLAG_DONTACTUALLYPRINT

  • PRINTFLAG_FORCEPROPERTIES

  • PRINTFLAG_PRINTTOFILE

CPrintInfo::m_lpUserData

Contains a pointer to a user-created structure.

Remarks

You can use this to store printing-specific data that you do not want to store in your view class. The m_lpUserData member is a public variable of type LPVOID.

CPrintInfo::m_nCurPage

Contains the number of the current page.

Remarks

The framework calls CView::OnPrepareDC and CView::OnPrint once for each page of the document, specifying a different value for this member each time; its values range from the value returned by GetFromPage to that returned by GetToPage. Use this member in your overrides of CView::OnPrepareDC and CView::OnPrint to print the specified page of the document.

When preview mode is first invoked, the framework reads the value of this member to determine which page of the document should be previewed initially. You can set the value of this member in your override of CView::OnPreparePrinting to maintain the user's current position in the document when entering preview mode. The m_nCurPage member is a public variable of type UINT.

CPrintInfo::m_nJobNumber

Indicates the job number assigned by the operating system for the current print job.

Remarks

This value may be SP_ERROR if the job hasn't yet printed (that is, if the CPrintInfo object is newly constructed and has not yet been used to print), or if there was an error in starting the job.

CPrintInfo::m_nNumPreviewPages

Contains the number of pages displayed in preview mode; it can be either 1 or 2.

Remarks

The m_nNumPreviewPages member is a public variable of type UINT.

CPrintInfo::m_nOffsetPage

Contains the number of pages preceding the first page of a particular DocObject in a combined DocObject print job.

CPrintInfo::m_pPD

Contains a pointer to the CPrintDialog object used to display the Print dialog box for the print job.

Remarks

The m_pPD member is a public variable declared as a pointer to CPrintDialog.

CPrintInfo::m_rectDraw

Specifies the usable drawing area of the page in logical coordinates.

Remarks

You may want to refer to this in your override of CView::OnPrint. You can use this member to keep track of what area remains usable after you print headers, footers, and so on. The m_rectDraw member is a public variable of type CRect.

CPrintInfo::m_strPageDesc

Contains a format string used to display the page numbers during print preview; this string consists of two substrings, one for single-page display and one for double-page display, each terminated by a '\n' character.

Remarks

The framework uses "Page %u\nPages %u-%u\n" as the default value. If you want a different format for the page numbers, specify a format string in your override of CView::OnPreparePrinting. The m_strPageDesc member is a public variable of type CString.

CPrintInfo::SetMaxPage

Call this function to specify the number of the last page of the document.

void SetMaxPage(UINT nMaxPage);

Parameters

nMaxPage
Number of the last page of the document.

Remarks

This value is stored in the CPrintDialog object referenced by the m_pPD member. If the length of the document is known before it is printed, call this function from your override of CView::OnPreparePrinting. If the length of the document depends on a setting specified by the user in the Print dialog box, call this function from your override of CView::OnBeginPrinting. If the length of the document is not known until it is printed, use the m_bContinuePrinting member to control the print loop.

Example

See the example for CView::OnPreparePrinting.

CPrintInfo::SetMinPage

Call this function to specify the number of the first page of the document.

void SetMinPage(UINT nMinPage);

Parameters

nMinPage
Number of the first page of the document.

Remarks

Page numbers normally start at 1. This value is stored in the CPrintDialog object referenced by the m_pPD member.

See Also

MFC Sample DIBLOOK
Hierarchy Chart
CView::OnBeginPrinting
CView::OnEndPrinting
CView::OnEndPrintPreview
CView::OnPrepareDC
CView::OnPreparePrinting
CView::OnPrint