Compartilhar via


Função CreateDCW (wingdi.h)

A função CreateDC cria um DC (contexto de dispositivo) para um dispositivo usando o nome especificado.

Sintaxe

HDC CreateDCW(
       LPCWSTR        pwszDriver,
  [in] LPCWSTR        pwszDevice,
       LPCWSTR        pszPort,
  [in] const DEVMODEW *pdm
);

Parâmetros

pwszDriver

Um ponteiro para uma cadeia de caracteres terminada em nulo que especifica DISPLAY ou o nome de um dispositivo de exibição específico. Para impressão, recomendamos que você passe NULL para lpszDriver porque a GDI ignora lpszDriver para dispositivos de impressora.

[in] pwszDevice

Um ponteiro para uma cadeia de caracteres terminada em nulo que especifica o nome do dispositivo de saída específico que está sendo usado, conforme mostrado pelo Gerenciador de Impressão (por exemplo, Epson FX-80). Não é o nome do modelo de impressora. O parâmetro lpszDevice deve ser usado.

Para obter nomes válidos para exibições, chame EnumDisplayDevices.

Se lpszDriver for DISPLAY ou o nome do dispositivo de um dispositivo de exibição específico, lpszDevice deverá ser NULL ou o mesmo nome do dispositivo. Se lpszDevice for NULL, um DC será criado para o dispositivo de exibição primário.

Se houver vários monitores no sistema, chamar CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL) criará um DC que abrange todos os monitores.

pszPort

Esse parâmetro é ignorado e deve ser definido como NULL. Ele é fornecido apenas para compatibilidade com o Windows de 16 bits.

[in] pdm

Um ponteiro para uma estrutura DEVMODE que contém dados de inicialização específicos do dispositivo para o driver de dispositivo. A função DocumentProperties recupera essa estrutura preenchida para um dispositivo especificado. O parâmetro pdm deve ser NULL se o driver do dispositivo deve usar a inicialização padrão (se houver) especificada pelo usuário.

Se lpszDriver for DISPLAY, pdm deverá ser NULL; O GDI usa oDEVMODE atual do do dispositivo de exibição.

Valor de retorno

Se a função for bem-sucedida, o valor retornado será o identificador para um DC para o dispositivo especificado.

Se a função falhar, o valor retornado será NULL.

Observações

Observe que o identificador para o DC só pode ser usado por um único thread a qualquer momento.

Para parâmetros lpszDriver e lpszDevice, chame EnumDisplayDevices para obter nomes válidos para exibições.

Quando você não precisar mais do DC, chame a função DeleteDC.

Se lpszDriver ou lpszDevice for DISPLAY, o thread que chama CreateDC possui o HDC que é criado. Quando esse thread é destruído, o HDC não é mais válido. Portanto, se você criar o HDC e passá-lo para outro thread e sair do primeiro thread, o segundo thread não poderá usar o HDC.

Ao chamar createDC para criar o HDC para um dispositivo de exibição, você deve passar para pdm NULL ou um ponteiro para DEVMODE que corresponde ao DEVMODE atual do dispositivo de exibição que lpszDevice especifica. Recomendamos passar NULL e não tentar corresponder exatamente ao DEVMODE do dispositivo de exibição atual.

Quando você chama CreateDC para criar o HDC para um dispositivo de impressora, o driver da impressora valida oDEVMODE . Se o driver da impressora determinar que o DEVMODE é inválido (ou seja, o driver da impressora não pode converter ou consumir o DEVMODE), o driver de impressora fornecerá um padrão DEVMODE para criar o HDC para o dispositivo de impressora.

ICM: Para habilitar o ICM, defina o membro dmICMMethod da estrutura de DEVMODE (apontado pelo parâmetro pInitData ) como o valor apropriado.

Exemplos

Para obter um exemplo, consulte Capturando uma imagem.

Nota

O cabeçalho wingdi.h define CreateDC como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows 2000 Server [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho wingdi.h (inclua Windows.h)
biblioteca Gdi32.lib
de DLL Gdi32.dll

Consulte também

DEVMODE

DOCINFO

DeleteDC

Funções de contexto do dispositivo

Visão geral dos contextos do dispositivo

DocumentProperties

EnumDisplayDevices

vários monitores de exibição

StartDoc