The on-line documentation on using the RichText control to print tellshow it is supposed to work. It does not mention two basic problems. First,the RichText control doesn’t work with the common dialog hDC. Second, toskip the error generated when using the Printer object hDC, you must useOn Error Resume Next. These code fragments show how to print properly from the RichText control:
On error resume nextprinter.print ""richtext.selprint printer.hdcprinter.enddoc
This wrapper function uses both the CommonDialog control and the Printerobject:
Function FilePrintDlgProc(rprnDlg As _ CommonDialog, rRTF As _ RichTextBox) As Boolean On Local Error GoTo Error_Handler: With rprnDlg .CancelError = True .Flags = cdlPDReturnDC + cdlPDNoPageNums If rRTF.SelLength = 0 Then .Flags = .Flags + cdlPDAllPages Else .Flags = .Flags + cdlPDSelection End If .ShowPrinter On Local Error Resume Next Printer.Print "" rRTF.SelPrint Printer.hDC Printer.EndDoc FilePrintDlgProc = True End With Exit FunctionError_Handler: If Err <> cdlCancel Then MsgBox "Error " & Err & "; " & Error End IfEnd Function