Vista preliminar en modo horizontal

12/08/2004 - 00:18 por Willser F. González C. | Informe spam
Hola Grupo,

Tengo un formulario basado en CFormView y estoy generando algunos listados
en el modo de vista preliminar.

Hasta aquí todo va bien, pero ahora, tengo un listado que requiere que se
muestre en modo horizontal. He tratado de hacerlo por el lado del DEVMODE
pero no logro que la vista preliminar se muestre horizontal.

Los cambios que realizo por medio del DEVMODE se ven reflejados cuando le
doy propiedades a la impresora actualmente seleccionada.

Cómo podría cambiar este modo para el Print Preview.?

Gracias.

Willser F.
willser@latinmail.com

Preguntas similare

Leer las respuestas

#1 Willser F. González C.
12/08/2004 - 16:01 | Informe spam
Por si a alguien le interesa, encontré esta solución, supongo que hay otras.


Dentro de la función OnPreparePrinting(...) se puede hacer el ajuste, este
aplica ya sea para Print Preview o para la impresora seleccionada.

BOOL CImageDemoView::OnPreparePrinting(CPrintInfo *pInfo)
{
SetPaperOrientation(2); // 2: Horizontal. 1: Vertical.

return (DoPreparePrinting(pInfo));
}


void SetPaperOrientation(unsigned char i_ucOrientation)
{
DEVMODE *l_pdmDevMode = NULL;

PRINTDLG l_pdPrinter;


theApp.GetPrinterDeviceDefaults(&l_pdPrinter); // theApp es de tipo
CWinApp.

l_pdmDevMode = (DEVMODE *) GlobalLock(l_pdPrinter.hDevMode);

if (l_pdmDevMode == NULL)
return;

if (l_pdmDevMode->dmFields & DM_ORIENTATION)
l_pdmDevMode->dmOrientation = i_ucOrientation; // DMORIENT_PORTRAIT (1) or
DMORIENT_LANDSCAPE (2)

GlobalUnlock(l_pdPrinter.hDevMode);
}

Willser F.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida