I følge MSDN, burde du kunne bruge \"hDevNames\" i m_pd til at indstille den printer der skal bruges. Jeg har sakset følgende :
hDevNames : Handle to a movable global memory object that contains a DEVNAMES structure. If hDevNames is not NULL on input, you must allocate a movable block of memory for the DEVNAMES structure and initialize its members. The PrintDlg function uses the input datato initialize the controls in the dialog box. When PrintDlg returns, the DEVNAMES members contain information for the printer chosen by the user. You can use this information to create a device context or an information context. The hDevNames member can be NULL, in which case, PrintDlg allocates memory for the DEVNAMES structure, initializes its members to indicate the user\'s input, and returns a handle that identifies it.
If both hDevMode and hDevNames are NULL, PrintDlg initializes the dialog box using the current default printer. To initialize the dialog box for a different printer, use the wDeviceOffset member of the DEVNAMES structure to specify the name of the printer.
Note that the dmDeviceName member of the DEVMODE structure also specifies a printer name. However, dmDeviceName is limited to 32 characters, and the wDeviceOffset name is not. If the wDeviceOffset and dmDeviceName names are not the same, PrintDlg initializes the dialog box using the printer specified by wDeviceOffset.
Du er inde på noget af det rigtige, så du får pointene. Jeg fandt selv en løsning på problemet:
Problemet er ikke at udskrive. Der har du ret i, at man her kan bruge \"hDevNames\" i m_pd til at indstille den printer der skal bruges.
Problemet opstod når man skulle vælge hvilken printer systemet skulle benytte, når programmet udskriver. For at vise den rigtige printer i printerdialogboxen var det nødvendigt at gemme hele DEVMODE og DEVNAMES strukturen i f.eks. registry. Ellers vil Windows altid vise standardprinteren. Disse skulle så overskrive DEVNAMES og DEVMODE, før printerdialogen DoModal() blev kaldt. På den måde blev det muligt at se hvilken en printer brugeren sidst havde benyttet.
I nedenstående på Microsofts hjemmeside findes der hjælp til hvordan det virker!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.