Cómo crear un contexto de dispositivo (DC) de impresora en MFC

Seleccione idioma Seleccione idioma
Id. de artículo: 162609 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Cuando se crea un contexto de dispositivo (DC) de impresora en la programación del SDK de Windows, una aplicación debe recuperar:: parámetros de CreateDC () (tales como nombre del controlador, nombre de dispositivo y salida puerto) desde un archivo Win.ini (16 bits) o un registro de Windows (32 bits). En Microsoft Foundation Classes, esto puede realizarse mediante una llamada a funciones CWinApp::GetPrinterDeviceDefaults() y CPrintDialog::CreatePrinterDC().

Este artículo muestra una forma de crear un contexto de dispositivo de impresora mediante la impresora seleccionada predeterminado sin mostrar el cuadro de diálogo Imprimir. Para crear un contexto de dispositivo de impresora para una impresora no predeterminada, consulte el capítulo 15 de "Programación Windows 3.1" por Charles Petzold.

Más información

El CWinApp::GetPrinterDeviceDefaults() espera una estructura PRINTDLG que se pasan de tal manera que se pueden almacenar los datos recuperados en los manipuladores de DEVMODE y DEVNAMES de la estructura. Los datos, a continuación, se utilizan para crear una impresora DC en la función CPrintDialog::CreatePrinterDC().

Puesto que CreatePrinterDC() y m_pd (una variable PRITNDLG) son de función miembro y la variable de miembro de la clase CPrintDialog, una variable de CPrintDialog es definida y utilizada en el siguiente código de ejemplo.

Código de ejemplo

// Instantiate a CPrintDialog object.
CPrintDialog dlg(FALSE);

// Retrieve the current printer defaults from the Windows .ini file
// as necessary, or uses the last printer configuration set by the
// user in Print Setup.
CWinApp* app = AfxGetApp();
if (!app->GetPrinterDeviceDefaults(&dlg.m_pd))
    {
    // Fails to create a printer device context for printing because
    // no printer is being installed. Bring up dialog box to alert the
    // users that they need to install a printer.  This step is optional.
    if (app->DoPrintDialog(&dlg) != IDOK)
       return ;
    }

// Creates a printer DC from the DEVMODE and DEVNAMES structures.
if (dlg.CreatePrinterDC() == NULL)
    return ;

// A printer device context (DC) has been created.
// Attach it to a CDC object. The DC is deleted when the CDC
// object goes out of scope.
CDC PrintDC;
PrintDC.Attach(dlg.m_pd.hDC);

// ADD YOUR CODE HERE.
				

Referencias

"Programación de Windows 3.1", Charles Petzold, capítulo 15, Microsoft Press, 1992

Propiedades

Id. de artículo: 162609 - Última revisión: martes, 21 de noviembre de 2006 - Versión: 3.2
La información de este artículo se refiere a:
  • Microsoft Foundation Class Library 4.2 sobre las siguientes plataformas
    • Microsoft Visual C++ 1.52 Professional Edition
    • Microsoft Visual C++ 2.0 Professional Edition
    • Microsoft Visual C++ 2.1
    • Microsoft Visual C++ 2.2
    • Microsoft Visual C++ 4.0 Standard Edition
    • Microsoft Visual C++ 4.1 Subscription
    • Microsoft Visual C++ 4.2 Professional Edition
Palabras clave: 
kbmt kbcode kbhowto kbprint KB162609 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 162609
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com