Compartir a través de


CPrintDialogEx (clase)

Encapsula los servicios proporcionados por la hoja de propiedades de impresión de Windows.

Sintaxis

class CPrintDialogEx : public CCommonDialog

Miembros

Constructores públicos

Nombre Descripción
CPrintDialogEx::CPrintDialogEx Construye un objeto CPrintDialogEx.

Métodos públicos

Nombre Descripción
CPrintDialogEx::CreatePrinterDC Crea un contexto de dispositivos de impresora sin mostrar el cuadro de diálogo Imprimir.
CPrintDialogEx::DoModal Muestra el cuadro de diálogo y permite al usuario realizar selecciones.
CPrintDialogEx::GetCopies Recupera el número de copias solicitadas.
CPrintDialogEx::GetDefaults Recupera los valores predeterminados del dispositivo sin mostrar un cuadro de diálogo.
CPrintDialogEx::GetDeviceName Recupera el nombre del dispositivo de impresora seleccionado actualmente.
CPrintDialogEx::GetDevMode Recupera la estructura DEVMODE.
CPrintDialogEx::GetDriverName Recupera el nombre del controlador del dispositivo de impresión definido por el sistema.
CPrintDialogEx::GetPortName Recupera el nombre del puerto de impresora seleccionado actualmente.
CPrintDialogEx::GetPrinterDC Recupera un identificador para el contexto del dispositivo de impresora.
CPrintDialogEx::PrintAll Determina si se van a imprimir todas las páginas del documento.
CPrintDialogEx::PrintCollate Determina si se solicitan copias intercaladas.
CPrintDialogEx::PrintCurrentPage Determina si se va a imprimir la página actual del documento.
CPrintDialogEx::PrintRange Determina si se va a imprimir solo un intervalo de páginas especificado.
CPrintDialogEx::PrintSelection Determina si se van a imprimir solo los elementos seleccionados actualmente.

Miembros de datos públicos

Nombre Descripción
CPrintDialogEx::m_pdex Estructura utilizada para personalizar un objeto CPrintDialogEx.

Comentarios

Puede confiar en el marco para controlar muchos aspectos del proceso de impresión de la aplicación. Para más información sobre el uso del marco para controlar las tareas de impresión, consulte el artículo Impresión.

Si quiere que la aplicación controle la impresión sin la participación del marco, puede usar la clase CPrintDialogEx "tal cual" con el constructor proporcionado, o puede derivar su propia clase de cuadro de diálogo de CPrintDialogEx y escribir un constructor que se adapte a sus necesidades. En cualquier caso, estos cuadros de diálogo se comportarán como cuadros de diálogo de MFC estándar porque se derivan de la clase CCommonDialog.

Para usar un objeto CPrintDialogEx, cree primero el objeto mediante el constructor CPrintDialogEx. Una vez se ha construido el cuadro de diálogo, puede establecer o modificar los valores de la estructura m_pdex para inicializar los valores de los controles del cuadro de diálogo. La estructura m_pdex es de tipo PRINTDLGEX. Para más información sobre esta estructura, consulte Windows SDK.

Si no proporciona sus propios identificadores en m_pdex para los miembros hDevMode y hDevNames, asegúrese de llamar a la función GlobalFree de Windows con estos identificadores cuando haya terminado con el cuadro de diálogo.

Después de inicializar los controles del cuadro de diálogo, llame a la función miembro DoModal para mostrar el cuadro de diálogo y permitir que el usuario seleccionar opciones de impresión. Cuando DoModal devuelva resultados, puede determinar si el usuario seleccionó el botón Aceptar, Aplicar o Cancelar.

Si el usuario presionó Aceptar, puede usar las funciones miembros de CPrintDialogEx para recuperar la información especificada por el usuario.

La función miembro CPrintDialogEx::GetDefaults es útil para recuperar los valores predeterminados de la impresora actual sin mostrar un cuadro de diálogo. Este método no requiere ninguna interacción del usuario.

Puede usar la función CommDlgExtendedError de Windows para determinar si se produjo un error durante la inicialización del cuadro de diálogo y obtener más información sobre el error. Para más información sobre esta función, consulte Windows SDK.

Para más información sobre el uso de CPrintDialogEx, consulte Clases de cuadros de diálogo comunes.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

Cdialog

IObjectWithSite

IPrintDialogCallback

CCommonDialog

CPrintDialogEx

Requisitos

Encabezado: afxdlgs.h

CPrintDialogEx::CPrintDialogEx

Construye una hoja de propiedades de impresión de Windows.

CPrintDialogEx(
    DWORD dwFlags = PD_ALLPAGES | PD_USEDEVMODECOPIES | PD_NOPAGENUMS       | PD_HIDEPRINTTOFILE | PD_NOSELECTION | PD_NOCURRENTPAGE,
    CWnd* pParentWnd = NULL);

Parámetros

dwFlags
Puede usar una o varias marcas para personalizar la configuración del cuadro de diálogo, en combinación con el operador OR bit a bit. Por ejemplo, la marca PD_ALLPAGES establece el intervalo de impresión predeterminado en todas las páginas del documento. Consulte la estructura PRINTDLGEX en Windows SDK para más información sobre estas marcas.

pParentWnd
Puntero a la ventana principal o propietaria del cuadro de diálogo.

Comentarios

Esta función miembro solo construye el objeto. Use la función miembro DoModal para mostrar el cuadro de diálogo.

CPrintDialogEx::CreatePrinterDC

Crea un contexto de dispositivo de impresora (DC) a partir de las estructuras DEVMODE y DEVNAMES.

HDC CreatePrinterDC();

Valor devuelto

Identificador del contexto del dispositivo de impresora recién creado.

Comentarios

El controlador de dominio devuelto también se almacena en el miembro hDC de m_pdex.

Se supone que este controlador de dominio es el controlador de dominio de la impresora actual y se debe eliminar cualquier otro controlador de dominio de impresora obtenido anteriormente. Se puede llamar a esta función y usar el controlador de dominio resultante, sin mostrar nunca el cuadro de diálogo Imprimir.

CPrintDialogEx::DoModal

Llame a esta función para mostrar la hoja de propiedades de impresión de Windows y permitir al usuario seleccionar varias opciones de impresión, como el número de copias, el intervalo de páginas y si se deben intercalar las copias.

virtual INT_PTR DoModal();

Valor devuelto

El valor devuelto INT_PTR es en realidad un valor HRESULT. Consulte la sección Valores devueltos en PrintDlgEx en Windows SDK.

Comentarios

Si quiere inicializar las distintas opciones del cuadro de diálogo de impresión estableciendo miembros de la estructura m_pdex, debe hacerlo antes de llamar a DoModal, pero después de construir el objeto de cuadro de diálogo.

Después de llamar a DoModal, puede llamar a otras funciones miembro para recuperar la configuración o la información de entrada del usuario en el cuadro de diálogo.

Si se usa la marca PD_RETURNDC al llamar a DoModal, se devolverá un controlador de dominio de impresora en el miembro hDC de m_pdex. Este controlador de dominio debe liberarlo con una llamada a DeleteDC el autor de la llamada de CPrintDialogEx.

CPrintDialogEx::GetCopies

Llame a esta función después de llamar a DoModal para recuperar el número de copias solicitadas.

int GetCopies() const;

Valor devuelto

Número de copias solicitadas.

CPrintDialogEx::GetDefaults

Llame a esta función para recuperar los valores predeterminados del dispositivo de la impresora predeterminada sin mostrar un cuadro de diálogo.

BOOL GetDefaults();

Valor devuelto

TRUE si es correcto; en caso contrario, FALSE.

Comentarios

Crea un contexto de dispositivo de impresora (DC) a partir de las estructuras DEVMODE y DEVNAMES.

GetDefaults no muestra la hoja de propiedades de impresión. En su lugar, establece los miembros hDevNames y hDevMode de m_pdex en identificadores de las estructuras DEVMODE y DEVNAMES que se inicializan para la impresora predeterminada del sistema. Tanto hDevNames como hDevMode deben ser NULL, o GetDefaults produce un error.

Si se establece la marca PD_RETURNDC, esta función no solo devolverá hDevNames y hDevMode (ubicado en m_pdex.hDevNames y m_pdex.hDevMode) al autor de la llamada, sino que también devolverá un controlador de dominio de impresora en m_pdex.hDC. Es responsabilidad del autor de la llamada eliminar el controlador de dominio de la impresora y llamar a la función GlobalFree de Windows en los identificadores cuando haya terminado con el objeto CPrintDialogEx.

CPrintDialogEx::GetDeviceName

Llame a esta función después de llamar a DoModal para recuperar el nombre de la impresora seleccionada actualmente o después de llamar a GetDefaults para recuperar el nombre de la impresora predeterminada.

CString GetDeviceName() const;

Valor devuelto

Nombre de la impresora actualmente seleccionada.

Comentarios

Use un puntero al objeto CString devuelto por GetDeviceName como valor de lpszDeviceName en una llamada a CDC::CreateDC.

CPrintDialogEx::GetDevMode

Llame a esta función después de llamar a DoModal o GetDefaults para recuperar información sobre el dispositivo de impresión.

LPDEVMODE GetDevMode() const;

Valor devuelto

Estructura de datos DEVMODE, que contiene información sobre la inicialización del dispositivo y el entorno de un controlador de impresión. Debe desbloquear la memoria ocupada por esta estructura con la función GlobalUnlock de Windows, que se describe en Windows SDK.

CPrintDialogEx::GetDriverName

Llame a esta función después de llamar a DoModal o GetDefaults para recuperar el nombre del controlador de dispositivo de impresora definido por el sistema.

CString GetDriverName() const;

Valor devuelto

Un objeto CString que especifica el nombre del controlador definido por el sistema.

Comentarios

Use un puntero al objeto CString devuelto por GetDriverName como valor de lpszDriverName en una llamada a CDC::CreateDC.

CPrintDialogEx::GetPortName

Llame a esta función después de llamar a DoModal o GetDefaults para recuperar el nombre del puerto de impresora seleccionado actualmente.

CString GetPortName() const;

Valor devuelto

Nombre del puerto de impresora seleccionado actualmente.

CPrintDialogEx::GetPrinterDC

Devuelve un identificador al contexto del dispositivo de impresora.

HDC GetPrinterDC() const;

Valor devuelto

Identificador para el contexto del dispositivo de impresora.

Comentarios

Debe llamar a la función DeleteDC de Windows para eliminar el contexto del dispositivo cuando haya terminado de usarlo.

CPrintDialogEx::m_pdex

Estructura PRINTDLGEX cuyos miembros almacenan las características del objeto de cuadro de diálogo.

PRINTDLGEX m_pdex;

Comentarios

Después de construir un objeto CPrintDialogEx, puede usar m_pdex para establecer varios aspectos del cuadro de diálogo antes de llamar a la función miembro DoModal. Para más información sobre la estructura m_pdex, consulte PRINTDLGEX en Windows SDK.

Si modifica el miembro de datos m_pdex directamente, invalidará cualquier comportamiento predeterminado.

CPrintDialogEx::PrintAll

Llame a esta función después de llamar a DoModal para determinar si se van a imprimir todas las páginas del documento.

BOOL PrintAll() const;

Valor devuelto

TRUE si se van a imprimir todas las páginas del documento; en caso contrario, FALSE.

CPrintDialogEx::PrintCollate

Llame a esta función después de llamar a DoModal para determinar si la impresora debe intercalar todas las copias impresas del documento.

BOOL PrintCollate() const;

Valor devuelto

TRUE si el usuario activa la casilla de intercalación en el cuadro de diálogo; en caso contrario, FALSE.

CPrintDialogEx::PrintCurrentPage

Llame a esta función después de llamar a DoModal para determinar si se va a imprimir la página actual del documento.

BOOL PrintCurrentPage() const;

Valor devuelto

TRUE si se selecciona Imprimir página actual en el cuadro de diálogo de impresión; en caso contrario, FALSE.

CPrintDialogEx::PrintRange

Llame a esta función después de llamar a DoModal para determinar si se va a imprimir solo un intervalo de páginas del documento.

BOOL PrintRange() const;

Valor devuelto

TRUE si solo se va a imprimir un intervalo de páginas del documento; en caso contrario, FALSE.

Comentarios

Los intervalos de página especificados se pueden determinar a partir de m_pdex (consulte nPageRanges, nMaxPageRanges y lpPageRanges en la estructura PRINTDLGEX en Windows SDK).

CPrintDialogEx::PrintSelection

Llame a esta función después de llamar a DoModal para determinar si se van a imprimir solo los elementos seleccionados actualmente.

BOOL PrintSelection() const;

Valor devuelto

TRUE si solo se van a imprimir los elementos seleccionados; en caso contrario, FALSE.

Consulte también

CCommonDialog (clase)
Gráfico de jerarquías
CPrintInfo (estructura)