C/Visual C - orientacion de pagina

 
Vista:

orientacion de pagina

Publicado por Carlos (2 intervenciones) el 16/04/2007 15:16:14
Alguien sabe como se puede llegar a especificar que el modo de impresion sea "apaisado" (es decir, imprimir con la hoja en horizontal), pero SIN PASAR POR EL CPAGESETUPDLG.

Lo que quiero es poder elegir yo, a traves de una variable la configuracion de la hoja:

if (bVar)
Imprimir_en_horizontal (pDC, pInfo);
else
Imprimir_en_vertical (pDC, pInfo);

Todo lo que es el emplazamiento de graficas y demas elementos ya esta hecho, pero no se como acceder a ese parametro.

He llegado a conseguir el HANDLE de la estructura DEVMODE de mi impresora, pero si intento llegar hasta el miembro dmOrientation me da fallo de compilacion.

Yo no quiero que el usuario tenga que llamar a la configuracion de la pagina o de la impresora cuando le da a imprimir despues de ver que los margenes no concuerdan, sino poder elegir directamente el tipo en funcion de impresion segun el tamaño y la cantidad de lo que se tenga que imprimir.

Que alguien me eche una mano por favor :(
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:orientacion de pagina

Publicado por Nelek (816 intervenciones) el 16/04/2007 15:57:07
Prueba esto, pero hay un fallo

if (pDC->IsPrinting ())
{
DEVMODE* devMode = pInfo->m_pPD->GetDevMode ();
devMode->dmOrientation = DMORIENT_PORTRAIT;
}

if (pDC->IsPrinting ())
{
DEVMODE* devMode = pInfo->m_pPD->GetDevMode ();
devMode->dmOrientation = DMORIENT_LANDSCAPE;
}

Eso lo cambia pero te lo deja asi hasta el siguiente cambio que hagas. No se como hacerlo para que te cambie a cada pagina.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Porque pasa eso?

Publicado por Carlos (2 intervenciones) el 17/04/2007 08:15:57
Gracias,

si que funciona, pero solo a la segunda. Tengo 4 tipos de ventanas, 3 son en PORTRAIT y una en LANDSCAPE. Mientras imprimo en ventanas similares no hay problema, pero cuando intento imprimir tipos distintos... Solo me toma la configuracion cuando le hago DOS VECES la vista previa o mando dos veces la impresion, y al volver al otro tipo me pasa lo mismo.

He puesto la eleccion de la pagina en OnPreparePrinting () y luego he intentado poniendola ademas al principio de OnPrint () para que se ejecutara dos veces, pero nada.

Como puedo conseguir que cada ventana tenga su tipo de impresion a la primera?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar