
La clase CPrintDialog encapsula los servicios prestados por el cuadro de diálogo común de Windows para la impresión. Los cuadros de diálogo de impresión comunes proporcionan una forma fácil para aplicar a cuadros de diálogo Imprimir y Configurar impresión de una manera consistente con los estándares de Windows.
Si lo desea, puede confiar en el marco de manejar muchos aspectos del proceso de impresión para su aplicación. En este caso, el marco muestra automáticamente el cuadro de diálogo común de Windows para la impresión. También pueden tener el control de marco de impresión para su aplicación pero reemplazar el cuadro de diálogo de impresión común con su propio cuadro de diálogo Imprimir. Para obtener más información sobre cómo utilizar el marco para manejar tareas de impresión, consulte el artículo impresión en la Guía del programador de Visual C++.
Si desea que su aplicación para administrar la impresión sin la participación de marco, puede utilizar la clase CPrintDialog "tal cual" con el constructor proporcionado, o puede derivar su propia clase de diálogo CPrintDialog y escribir un constructor para satisfacer sus necesidades. En cualquier caso, estos cuadros de diálogo se comportarán como cuadros de diálogo estándar de MFC porque derivan de la clase CCommonDialog.
Para utilizar un objeto CPrintDialog , primero cree el objeto utilizando el constructor de CPrintDialog . Una vez que se ha construido el cuadro de diálogo, puede establecer o modificar los valores de la estructura de m_pd para inicializar los valores de los controles del cuadro de diálogo. La estructura de m_pd es de tipo PRINTDLG. Para obtener más información sobre esta estructura, consulte la documentación del SDK de Win32.
Si no proporciona sus propios controles en m_pd para los miembros de hDevMode y hDevNames , asegúrese de llamar a la función de Windows GlobalFree para estos controles cuando termine con el cuadro de diálogo. Cuando se utiliza la aplicación de configuración de impresión del marco proporcionado por CWinApp::OnFilePrintSetup, no tienes libre de estos controles. Los controles son mantenidos por CWinApp y se liberan en CWinAppdel destructor. Sólo es necesario liberar estos controles cuando se usa CPrintDialog independiente.
Después de inicializar los controles de cuadro de diálogo, llame a la función de miembro de DoModal para mostrar el cuadro de diálogo y permitir al usuario seleccionar opciones de impresión. DoModal devuelve si el usuario selecciona el (IDOK) botón Aceptar o Cancelar (IDCANCEL).
Si DoModal devuelve IDOK, puede utilizar una de las funciones de miembro del CPrintDialogpara recuperar la información de entrada por el usuario.
La función de miembro CPrintDialog::GetDefaults es útil para recuperar los valores predeterminados de impresión sin mostrar un cuadro de diálogo. Esta función miembro no requiere interacción del usuario.
Puede utilizar la función de Windows CommDlgExtendedError para determinar si se ha producido un error durante la inicialización del cuadro de diálogo y para aprender más acerca del error. Para obtener más información sobre esta función, consulte la documentación del SDK de Win32.
CPrintDialog se basa en la COMMDLG.Archivo DLL que se distribuye con Windows versiones 3.1 y posteriores.
Para personalizar el cuadro de diálogo, derive una clase de CPrintDialog, proporcionar una plantilla de cuadro de diálogo personalizado y agregar un mapa de mensajes para procesar los mensajes de notificación de los controles extendidos. Los mensajes no procesados deben transmitirse a la clase base. No es necesario personalizar la función de enlace.
Para procesar el mismo mensaje de manera diferente dependiendo de si el cuadro de diálogo es imprimir o Configurar impresión, debe derivar una clase para cada cuadro de diálogo. También se debe reemplazar la función de Windows AttachOnSetup , que gestiona la creación de un nuevo cuadro de diálogo cuando se selecciona el botón de configuración de impresora dentro de un cuadro de diálogo Imprimir.
Para obtener más información sobre el uso de CPrintDialog, consulte Clases de diálogo comunes en la Guía del programador de Visual C++.
# include lt;afxdlgs.h>
Miembros de la clase |nbsp; Clase base | Diagrama de jerarquía
Muestra Ejemplo de MFC DIBLOOK
Vea tambié&nnbsp;CPrintInfo