Objects of this class manage the print preview process. The object is passed a wxPrintout object, and the wxPrintPreview object itself is passed to a wxPreviewFrame object. Previewing is started by initializing and showing the preview frame. Unlike wxPrinter::Print, flow of control returns to the application immediately after the frame is shown.

Derived from


Include files


See also

See Printing framework overview., wxPrinterDC, wxPrintDialog, wxPrintout, wxPrinter, wxPreviewCanvas, wxPreviewControlBar, wxPreviewFrame.


wxPrintPreview(wxPrintout* printout, wxPrintout* printoutForPrinting, wxPrintData* data=NULL)

Constructor. Pass a printout object, an optional printout object to be used for actual printing, and the address of an optional block of printer data, which will be copied to the print preview object's print data.

If printoutForPrinting is non-NULL, a Print... button will be placed on the preview frame so that the user can print directly from the preview interface.

Do not explicitly delete the printout objects once this destructor has been called, since they will be deleted in the wxPrintPreview constructor. The same does not apply to the data argument.

Test the Ok member to check whether the wxPrintPreview object was created correctly. Ok could return false if there was a problem initializing the printer device context (current printer not set, for example).



Destructor. Deletes both print preview objects, so do not destroy these objects in your application.


wxPreviewCanvas* GetCanvas(void)

Gets the preview window used for displaying the print preview image.


int GetCurrentPage(void)

Gets the page currently being previewed.


wxFrame * GetFrame(void)

Gets the frame used for displaying the print preview canvas and control bar.


int GetMaxPage(void)

Returns the maximum page number.


int GetMinPage(void)

Returns the minimum page number.


wxPrintout * GetPrintout(void)

Gets the preview printout object associated with the wxPrintPreview object.


wxPrintout * GetPrintoutForPrinting(void)

Gets the printout object to be used for printing from within the preview interface, or NULL if none exists.


bool Ok(void)

Returns true if the wxPrintPreview is valid, false otherwise. It could return false if there was a problem initializing the printer device context (current printer not set, for example).


bool PaintPage(wxPreviewCanvas * canvas, wxDC& dc)

This refreshes the preview window with the preview image. It must be called from the preview window's OnPaint member.

The implementation simply blits the preview bitmap onto the canvas, creating a new preview bitmap if none exists.


bool Print(bool prompt)

Invokes the print process using the second wxPrintout object supplied in the wxPrintPreview constructor. Will normally be called by the Print... panel item on the preview frame's control bar.

Returns false in case of error - call wxPrinter::GetLastError to get detailed information about the kind of the error.


bool RenderPage(int pageNum)

Renders a page into a wxMemoryDC. Used internally by wxPrintPreview.


void SetCanvas(wxPreviewCanvas* window)

Sets the window to be used for displaying the print preview image.


void SetCurrentPage(int pageNum)

Sets the current page to be previewed.


void SetFrame(wxFrame * frame)

Sets the frame to be used for displaying the print preview canvas and control bar.


void SetPrintout(wxPrintout * printout)

Associates a printout object with the wxPrintPreview object.


void SetZoom(int percent)

Sets the percentage preview zoom, and refreshes the preview canvas accordingly.

ymasuda 平成17年11月19日