Think of printing a set of invoices, for example. This is not a trivial task in wxWidgets.
The standard code to print a document is the following (see also this post):
wxPrintDialogData printDialogData(* m_PrintData);
wxPrinter printer( &printDialogData );
bool success = printer.Print( NULL, &printout, true );
The code above shows a printer selection dialog, then it prints to the printer selected by the user.
After printing you can get the name of the selected printer with this code:
wxString pName = printer.GetPrintDialogData().GetPrintData().GetPrinterName();
Then you can use the printer name to print again directly to that printer:
m_PrintData->SetPrinterName( pName );
wxPrintDialogData printDialogData(* m_PrintData);
wxPrinter printer( &printDialogData );
bool success = printer.Print( NULL, &printout, false );
The code above sets the printer name and prints without showing a printer selection dialog.
As you can see the solution a a simple one, but I had problems finding it because nobody seems to have this problem and I had to look hard in the documentation.