Frage zum eigenen CPrintDialog?
-
Hallo,
ich wollte für meine Anwendung einen eigenen CPrintDialog basteln,
an die angeschlossenen Drucker komme ich so ranCComboBox * 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