Printer Vorwahl
-
hallo,
bin neu hier und schlage mich seit tagen mit einem problem herum,
hoffentlich kann mir hier einer helfen.
folgendes: in einem bestimmten programm benutze ich einen nadeldrucker und
möchte gerne, daß dieser im PrintDialog schon vorgewählt ist und nicht
der Standard-Drucker. Die ständige Auswahl ist nervig und öfter schicke
ich die seite auf den falschen drucker.
Entwicklungsumgebung MFC Visual C++ 6.Danke im vorraus.
-
Nicht probiert! Ich würde bevor ich den Dialog aufrufe die PRINTDLG Struktur ändern. PRINTDLG::hDevMode schaut gut aus. DEVMODE::dmDeviceName auf den gewünschten Drucker setzen.
-
Vielen Dank für die schnelle Antwort, aber das habe ich schon probiert:
void CDPDAdressApp::SetPrinter()
{
CPageSetupDialog dlg;
dlg.GetDeviceName();PRINTDLG pd;
pd.lStructSize=(DWORD)sizeof(PRINTDLG);
BOOL bRet=GetPrinterDeviceDefaults(&pd);
if(bRet)
{
// protect memory handle with ::GlobalLock and ::GlobalUnlock
DEVMODE FAR *pDevMode=(DEVMODE FAR *)::GlobalLock(m_hDevMode);CString PrinterName = "NEC Pinwriter P2plus";
strcpy((char*)pDevMode->dmDeviceName, PrinterName); !!!!!!!!!!!!!!!!!!!!!pDevMode->dmFields = DM_ORIENTATION | DM_PAPERSIZE |
DM_PAPERWIDTH | DM_PAPERLENGTH;
pDevMode->dmPaperSize = DMPAPER_USER;
pDevMode->dmPaperWidth = 1450;
pDevMode->dmPaperLength = 1015;pDevMode->dmOrientation = 1; // Hochformat !!
::GlobalUnlock(m_hDevMode);
}
}Hoch / Querformat und PaperSize einstellen funktioniert aber die Printer-Vorwahl nicht.
mfG
-
keiner eine Idee ?