R
Hallo,
ich wollte für meine Anwendung einen eigenen CPrintDialog basteln,
an die angeschlossenen Drucker komme ich so ran
CComboBox * pb= (CComboBox*)GetDlgItem(IDC_COMBO_DRUCKER);
//alle drucker in combo
DWORD dwSize,dwPrinters;
::EnumPrinters(PRINTER_ENUM_LOCAL,NULL,5,NULL,0,&dwSize,&dwPrinters);
BYTE * pBuffer=new BYTE[dwSize];
::EnumPrinters(PRINTER_ENUM_LOCAL,NULL,5,pBuffer,dwSize,&dwSize,&dwPrinters);
if(dwPrinters==0)
MessageBox("Kein Drucker installiert!","Achtung!");
else
{
PRINTER_INFO_5 * pPrnInfo= (PRINTER_INFO_5*) pBuffer;
for(UINT i=0;i<dwPrinters;i++)
{
pb->AddString(pPrnInfo->pPrinterName);
pPrnInfo++;
}
pb->SetCurSel(0);
}
delete[] pBuffer;
Nun soll man auch im Querformat drucken können, mit den standard CPrintDialog
ging das folgender massen:
DEVMODE *myMode = dlg.GetDevMode(); // myMode mit Printer defaults
myMode->dmOrientation = DMORIENT_LANDSCAPE; // defaultmässig Querformat
dcPrint.Attach(dlg.GetPrinterDC()); // get printer dc
dcPrint.ResetDC(myMode); // resets dc to new DEVMODE
An die DEVMODE-Struktur kommme ich beim standard-CPrintDlg ja ganz einfach
mittels der Methode 'dlg.GetDevMode() ' ,
wie aber komme ich an die DEVMODE-Struktur wenn ich 'nur' den Namen des
Druckers/Treibers habe???
pls help me