Compartilhar via


Classe CPrintDialogEx

Encapsula os serviços fornecidos pela folha de propriedades de Impressão do Windows.

Sintaxe

class CPrintDialogEx : public CCommonDialog

Membros

Construtores públicos

Nome Descrição
CPrintDialogEx::CPrintDialogEx Constrói um objeto CPrintDialogEx.

Métodos públicos

Nome Descrição
CPrintDialogEx::CreatePrinterDC Cria um contexto de dispositivo de impressora sem exibir a caixa de diálogo Imprimir.
CPrintDialogEx::DoModal Exibe a caixa de diálogo e permite que o usuário faça seleções.
CPrintDialogEx::GetCopies Recupera o número de cópias solicitadas.
CPrintDialogEx::GetDefaults Recupera os padrões do dispositivo sem exibir uma caixa de diálogo.
CPrintDialogEx::GetDeviceName Recupera o nome do dispositivo de impressora selecionado no momento.
CPrintDialogEx::GetDevMode Recupera a estrutura DEVMODE.
CPrintDialogEx::GetDriverName Recupera o nome do driver de dispositivo de impressora definido pelo sistema.
CPrintDialogEx::GetPortName Recupera o nome da porta da impressora selecionada no momento.
CPrintDialogEx::GetPrinterDC Recupera um identificador para o contexto do dispositivo de impressora.
CPrintDialogEx::PrintAll Determina se todas as páginas do documento devem ser impressas.
CPrintDialogEx::PrintCollate Determina se as cópias agrupadas são solicitadas.
CPrintDialogEx::PrintCurrentPage Determina se a página atual do documento deve ser impressa.
CPrintDialogEx::PrintRange Determina se é necessário imprimir apenas um intervalo de páginas especificado.
CPrintDialogEx::PrintSelection Determina se os itens selecionados no momento devem ser impressos.

Membros de Dados Públicos

Nome Descrição
CPrintDialogEx::m_pdex Uma estrutura usada para personalizar um objeto CPrintDialogEx.

Comentários

Você pode contar com a estrutura para lidar com muitos aspectos do processo de impressão para seu aplicativo. Para mais informações sobre como usar a estrutura para lidar com tarefas de impressão, confira o artigo Como imprimir.

Se você quiser que seu aplicativo manipule a impressão sem o envolvimento da estrutura, você pode usar a classe CPrintDialogEx "no estado em que se encontra" com o construtor fornecido ou derivar sua classe de diálogo de CPrintDialogEx e escrever um construtor para atender às suas necessidades. Em ambos os casos, essas caixas de diálogo se comportarão como caixas de diálogo MFC padrão porque são derivadas da classe CCommonDialog.

Para usar um objeto CPrintDialogEx, primeiro crie o objeto usando o construtor CPrintDialogEx. Depois que a caixa de diálogo for construída, você poderá definir ou modificar valores na estrutura m_pdex para inicializar os valores dos controles da caixa de diálogo. A estrutura m_pdex é do tipo PRINTDLGEX. Para obter mais informações sobre essa estrutura, confira o SDK do Windows.

Se você não fornecer identificadores próprios em m_pdex para os membros hDevMode e hDevNames, chame a função GlobalFree do Windows para esses identificadores quando terminar de usar a caixa de diálogo.

Depois de inicializar os controles da caixa de diálogo, chame a função de membro DoModal para exibir a caixa de diálogo e permitir que o usuário selecione opções de impressão. Quando DoModal retorna, você pode determinar se o usuário selecionou o botão OK, Aplicar ou Cancelar.

Se o usuário pressionou OK, você pode usar as funções de membro do CPrintDialogEx para recuperar as informações fornecidas pelo usuário.

A função de membro CPrintDialogEx::GetDefaults é útil para recuperar os padrões atuais da impressora sem exibir uma caixa de diálogo. Esse método não requer interação do usuário.

Você pode usar a função CommDlgExtendedError do Windows para determinar se ocorreu um erro durante a inicialização da caixa de diálogo e saber mais sobre o erro. Para obter mais informações sobre essa função, confira o SDK do Windows.

Para obter mais informações sobre como usar CPrintDialogEx, confira Classes de diálogo comuns.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CDialog

IObjectWithSite

IPrintDialogCallback

CCommonDialog

CPrintDialogEx

Requisitos

Cabeçalho: afxdlgs.h

CPrintDialogEx::CPrintDialogEx

Constrói uma folha de propriedades do Windows Print.

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

Parâmetros

dwFlags
Um ou mais sinalizadores que você pode usar para personalizar as configurações da caixa de diálogo, combinados usando o operador OR bit a bit. Por exemplo, o sinalizador PD_ALLPAGES define o intervalo de impressão padrão para todas as páginas do documento. Confira a estrutura PRINTDLGEX no SDK do Windows para obter informações sobre esses sinalizadores.

pParentWnd
Um ponteiro para a janela pai ou proprietária da caixa de diálogo.

Comentários

Essa função de membro só constrói o objeto. Use a função de membro DoModal para exibir a caixa de diálogo.

CPrintDialogEx::CreatePrinterDC

Cria um DC (contexto de dispositivo) de impressora das estruturas DEVMODE e DEVNAMES.

HDC CreatePrinterDC();

Valor de retorno

Identificador para o contexto de dispositivo de impressora que acaba de ser criado.

Comentários

O DC retornado também é armazenado no membro hDC do m_pdex.

Supõe-se que esse DC seja o DC da impressora atual e todos os outros DCs de impressora obtidos anteriormente devem ser excluídos. Essa função pode ser chamada e o DC resultante pode ser usado sem nunca exibir a caixa de diálogo Imprimir.

CPrintDialogEx::DoModal

Chame esta função para exibir a folha de propriedades Windows Print e permita que o usuário selecione várias opções de impressão, como o número de cópias, o intervalo de páginas e se as cópias devem ser agrupadas.

virtual INT_PTR DoModal();

Valor de retorno

O valor retornado INT_PTR é, na verdade, um HRESULT. Confira a seção Valores Retornados no PrintDlgEx no SDK do Windows.

Comentários

Se você quiser inicializar as várias opções de diálogo de impressão definindo membros da estrutura m_pdex, faça isso antes de chamar DoModal, mas depois que o objeto de caixa de diálogo tiver sido construído.

Depois de chamar DoModal, você poderá chamar outras funções de membro para recuperar as configurações ou a entrada de informações do usuário na caixa de diálogo.

Se o sinalizador PD_RETURNDC for usado ao chamar DoModal, um DC de impressora será retornado no membro hDC do m_pdex. Esse DC deve ser liberado com uma chamada para DeleteDC pelo chamador de CPrintDialogEx.

CPrintDialogEx::GetCopies

Chame essa função depois de chamar DoModal para recuperar o número de cópias solicitadas.

int GetCopies() const;

Valor de retorno

O número de cópias solicitadas.

CPrintDialogEx::GetDefaults

Chame esta função para recuperar os padrões do dispositivo da impressora padrão, sem exibir uma caixa de diálogo.

BOOL GetDefaults();

Valor de retorno

TRUE, se tiver êxito. Caso contrário, FALSE.

Comentários

Cria um DC (contexto de dispositivo) de impressora das estruturas DEVMODE e DEVNAMES.

GetDefaults não exibe a folha de propriedades Imprimir. Em vez disso, ele define os membros hDevNames e hDevMode do m_pdex, para tratar as estruturas DEVMODE e DEVNAMES inicializadas para a impressora padrão do sistema. Ambos hDevNames e hDevMode devem ser NULL ou GetDefaults falhará.

Se o sinalizador PD_RETURNDC estiver definido, essa função não só retornará hDevNames e hDevMode (localizados em m_pdex.hDevNames e m_pdex.hDevMode) para o chamador, como também retornará um DC de impressora em m_pdex.hDC. É responsabilidade do chamador excluir o DC da impressora e chamar a função GlobalFree do Windows nos identificadores quando terminar de usar o objeto CPrintDialogEx.

CPrintDialogEx::GetDeviceName

Chame essa função depois de chamar DoModal para recuperar o nome da impressora selecionada no momento ou depois de chamar GetDefaults para recuperar o nome da impressora padrão.

CString GetDeviceName() const;

Valor de retorno

O nome da impressora selecionada no momento.

Comentários

Use um ponteiro para o objeto CString retornado por GetDeviceName como o valor de lpszDeviceName em uma chamada para CDC::CreateDC.

CPrintDialogEx::GetDevMode

Chame essa função depois de chamar DoModal ou GetDefaults para recuperar informações sobre o dispositivo de impressão.

LPDEVMODE GetDevMode() const;

Valor de retorno

A estrutura de dados DEVMODE, que contém informações sobre a inicialização do dispositivo e o ambiente de um driver de impressão. Você deve desbloquear a memória obtida por essa estrutura com a função GlobalUnlock do Windows, que é descrita no SDK do Windows.

CPrintDialogEx::GetDriverName

Chame essa função depois de chamar DoModal ou GetDefaults para recuperar o nome do driver de dispositivo de impressora definido pelo sistema.

CString GetDriverName() const;

Valor de retorno

Um CString especificando o nome do driver definido pelo sistema.

Comentários

Use um ponteiro para o objeto CString retornado por GetDriverName como o valor de lpszDriverName em uma chamada para CDC::CreateDC.

CPrintDialogEx::GetPortName

Chame essa função depois de chamar DoModal ou GetDefaults para recuperar o nome da porta da impressora selecionada no momento.

CString GetPortName() const;

Valor de retorno

O nome da porta da impressora selecionada no momento.

CPrintDialogEx::GetPrinterDC

Retorna um identificador para o contexto do dispositivo de impressora.

HDC GetPrinterDC() const;

Valor de retorno

Um identificador para o contexto do dispositivo de impressora.

Comentários

Você deve chamar a função DeleteDC do Windows para excluir o contexto do dispositivo quando terminar de usá-lo.

CPrintDialogEx::m_pdex

Uma estrutura PRINTDLGEX cujos membros armazenam as características do objeto de caixa de diálogo.

PRINTDLGEX m_pdex;

Comentários

Depois de construir um objeto CPrintDialogEx, você poderá usar m_pdex para definir vários aspectos da caixa de diálogo antes de chamar a função de membro DoModal. Para mais informações sobre a estrutura m_pdex, confira PRINTDLGEX no SDK do Windows.

Se você modificar o membro de dados m_pdex diretamente, substituirá qualquer comportamento padrão.

CPrintDialogEx::PrintAll

Chame essa função depois de chamar DoModal para determinar se todas as páginas devem ser impressas no documento.

BOOL PrintAll() const;

Valor de retorno

TRUE, se todas as páginas no documento devem ser impressas. Caso contrário, FALSE.

CPrintDialogEx::PrintCollate

Chame essa função depois de chamar DoModal para determinar se a impressora deve reunir todas as cópias impressas do documento.

BOOL PrintCollate() const;

Valor de retorno

TRUE, se o usuário marcar caixa de seleção de agrupamento na caixa de diálogo. Caso contrário, FALSE.

CPrintDialogEx::PrintCurrentPage

Chame essa função depois de chamar DoModal para determinar se a página atual deve ser impressa no documento.

BOOL PrintCurrentPage() const;

Valor de retorno

TRUE, se a Página Atual de Impressão foi selecionada na caixa de diálogo de impressão. Caso contrário, FALSE.

CPrintDialogEx::PrintRange

Chame essa função depois de chamar DoModal para determinar se deseja imprimir apenas um intervalo de páginas no documento.

BOOL PrintRange() const;

Valor de retorno

TRUE, se apenas um intervalo de páginas no documento deve ser impresso. Caso contrário, FALSE.

Comentários

Os intervalos de página especificados podem ser determinados em m_pdex (confira nPageRanges, nMaxPageRanges e lpPageRanges na estrutura PRINTDLGEX no SDK do Windows).

CPrintDialogEx::PrintSelection

Chame essa função depois de chamar DoModal para determinar se você deseja imprimir apenas os itens selecionados no momento.

BOOL PrintSelection() const;

Valor de retorno

TRUE, se apenas os itens selecionados devem ser impressos. Caso contrário, FALSE.

Confira também

Classe CCommonDialog
Gráfico da hierarquia
Estrutura CPrintInfo