impresion de página apaisada DMORIENT_LANDSCAPE

09/04/2005 - 01:09 por Mateu Perelló | Informe spam
Hola grupo tengo el siguiente problema
defino el siguiente codigo para imprimir un listado apaisado pero no lo
llego a conseguir el DMORIENT_LANDSCAPE parece que no lo he definido bien
,podriais ayudarme?
Muchas grácias de antemano!!!!

CDC hDC;
DOCINFO di;
DEVMODE dm;
int x0,y;
int nNumLinees=0;
int nNumPagina=1;
CString szTmp=_T("");
hDC.CreateDC("WINSPOOL",theApp.m_szImpresoraAlb,NULL,NULL);
memset(&dm,0,sizeof(dm));
dm.dmSpecVersion=DM_SPECVERSION;
dm.dmSize=sizeof(DEVMODE);
dm.dmFields=DM_ORIENTATION;
//dm.dmOrientation=DMORIENT_PORTRAIT;
dm.dmOrientation=DMORIENT_LANDSCAPE;
memset(&di,0,sizeof(DOCINFO));
di.cbSize=sizeof(DOCINFO);
szTmp.Format("listado");
di.lpszDocName=szTmp;
//hDC.m_bPrinting=true;
hDC.SaveDC();
if(hDC.StartDoc(&di)!=SP_ERROR)
{
int ModoMapaAnt=SetMapMode(hDC,MM_HIENGLISH);
hDC.StartPage();
hDC.ResetDC(&dm);
hDC.SelectObject(&pnPincell);

. y aqui empiezo a imprimir
 

Leer las respuestas

#1 Rodrigo Corral [MVP]
09/04/2005 - 12:16 | Informe spam
Creo que la manera correcta de hacerlo es:

CDC dc; // dc para imprimir
CPrintDialog dlg(FALSE); // Dialogo para establecer la impresora
UINT prtOrient; // Orientación actual

// Establecer la orientación actual y guardar la anterior
prtOrient = ((CDialogApp *)AfxGetApp())->
PrinterOrientation(DMORIENT_LANDSCAPE);

// Inicializar el cuadro de dialog
AfxGetApp()->GetPrinterDeviceDefaults(&dlg.m_pd);

if (dlg.DoModal() == IDOK)
{
// Código para imprimri
}

// Restaura la orientación de la pagina
((CDialogApp *)AfxGetApp())->PrinterOrientation(prtOrient);


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org

Preguntas similares