Função GetDeviceCaps (wingdi.h)

A função GetDeviceCaps recupera informações específicas do dispositivo para o dispositivo especificado.

Sintaxe

int GetDeviceCaps(
  [in] HDC hdc,
  [in] int index
);

Parâmetros

[in] hdc

Um identificador para o controlador de domínio.

[in] index

O item a ser retornado. Esse parâmetro pode usar um dos valores a seguir.

Índice Significado
DRIVERVERSION
A versão do driver do dispositivo.
TECNOLOGIA
Tecnologia do dispositivo. Pode ser qualquer um dos valores a seguir.
DT_PLOTTER Plotador de vetor
DT_RASDISPLAY Exibição de varredura
DT_RASPRINTER Impressora raster
DT_RASCAMERA Câmera de varredura
DT_CHARSTREAM Fluxo de caracteres
DT_METAFILE Metarquivo
DT_DISPFILE Exibir arquivo
 

Se o parâmetro hdc for um identificador para o DC de um meta-arquivo aprimorado, a tecnologia do dispositivo será a do dispositivo referenciado, conforme especificado para a função CreateEnhMetaFile . Para determinar se é um DC de meta-arquivo aprimorado, use a função GetObjectType .

HORZSIZE
Largura, em milímetros, da tela física.
VERTSIZE
Altura, em milímetros, da tela física.
HORZRES
Largura, em pixels, da tela; ou para impressoras, a largura, em pixels, da área imprimível da página.
VERTRES
Altura, em linhas de varredura, da tela; ou para impressoras, a altura, em pixels, da área imprimível da página.
LOGPIXELSX
Número de pixels por polegada lógica ao longo da largura da tela. Em um sistema com vários monitores de exibição, esse valor é o mesmo para todos os monitores.
LOGPIXELSY
Número de pixels por polegada lógica ao longo da altura da tela. Em um sistema com vários monitores de exibição, esse valor é o mesmo para todos os monitores.
BITSPIXEL
Número de bits de cor adjacentes para cada pixel.
AVIÕES
Número de planos de cores.
NUMBRUSHES
Número de pincéis específicos do dispositivo.
NUMPENS
Número de canetas específicas do dispositivo.
NUMFONTS
Número de fontes específicas do dispositivo.
NUMCOLORS
Número de entradas na tabela de cores do dispositivo, se o dispositivo tiver uma profundidade de cor de no máximo 8 bits por pixel. Para dispositivos com maiores profundidades de cor, -1 é retornado.
ASPECTX
Largura relativa de um pixel de dispositivo usado para desenho de linha.
ASPECTO
Altura relativa de um pixel de dispositivo usado para desenho de linha.
ASPECTXY
Largura diagonal do pixel do dispositivo usado para desenho de linha.
PDEVICESIZE
Reservado.
CLIPCAPS
Sinalizador que indica os recursos de recorte do dispositivo. Se o dispositivo puder recortar para um retângulo, ele será 1. Caso contrário, é 0.
SIZEPALETTE
Número de entradas na paleta do sistema. Esse índice só será válido se o driver de dispositivo definir o RC_PALETTE bit no índice RASTERCAPS e estiver disponível somente se o driver for compatível com o Windows de 16 bits.
NUMRESERVED
Número de entradas reservadas na paleta do sistema. Esse índice só será válido se o driver de dispositivo definir o RC_PALETTE bit no índice RASTERCAPS e estiver disponível somente se o driver for compatível com o Windows de 16 bits.
COLORRES
Resolução real de cores do dispositivo, em bits por pixel. Esse índice só será válido se o driver de dispositivo definir o RC_PALETTE bit no índice RASTERCAPS e estiver disponível somente se o driver for compatível com o Windows de 16 bits.
PHYSICALWIDTH
Para dispositivos de impressão: a largura da página física, em unidades de dispositivo. Por exemplo, uma impressora definida para imprimir a 600 dpi em papel de 8,5-x11 polegadas tem um valor de largura física de 5100 unidades de dispositivo. Observe que a página física é quase sempre maior que a área imprimível da página e nunca menor.
PHYSICALHEIGHT
Para dispositivos de impressão: a altura da página física, em unidades de dispositivo. Por exemplo, uma impressora definida para imprimir a 600 dpi em papel de 8,5 por 11 polegadas tem um valor de altura física de 6.600 unidades de dispositivo. Observe que a página física é quase sempre maior que a área imprimível da página e nunca menor.
PHYSICALOFFSETX
Para imprimir dispositivos: a distância da borda esquerda da página física até a borda esquerda da área imprimível, em unidades de dispositivo. Por exemplo, uma impressora definida para imprimir a 600 dpi em papel de 8,5 por 11 polegadas, que não pode imprimir no papel de 0,25 polegadas mais à esquerda, tem um deslocamento físico horizontal de 150 unidades de dispositivo.
PHYSICALOFFSETY
Para imprimir dispositivos: a distância da borda superior da página física até a borda superior da área imprimível, em unidades de dispositivo. Por exemplo, uma impressora definida para imprimir a 600 dpi em papel de 8,5 por 11 polegadas, que não pode imprimir no máximo 0,5 polegada de papel, tem um deslocamento físico vertical de 300 unidades de dispositivo.
VREFRESH
Para dispositivos de exibição: a taxa de atualização vertical atual do dispositivo, em ciclos por segundo (Hz).

Um valor de taxa de atualização vertical de 0 ou 1 representa a taxa de atualização padrão do hardware de exibição. Normalmente, essa taxa padrão é definida por opções em um cartão de exibição ou placa-mãe do computador ou por um programa de configuração que não usa funções de exibição, como ChangeDisplaySettings.

SCALINGFACTORX
Fator de dimensionamento para o eixo x da impressora.
SCALINGFACTORY
Fator de dimensionamento para o eixo y da impressora.
BLTALIGNMENT
Alinhamento de desenho horizontal preferencial, expresso como um múltiplo de pixels. Para obter o melhor desempenho de desenho, as janelas devem ser alinhadas horizontalmente a um múltiplo desse valor. Um valor zero indica que o dispositivo está acelerado e qualquer alinhamento pode ser usado.
SHADEBLENDCAPS
Valor que indica os recursos de sombreamento e mesclagem do dispositivo. Consulte Comentários para obter mais comentários.
SB_CONST_ALPHA Manipula o membro SourceConstantAlpha da estrutura BLENDFUNCTION , que é referenciada pelo parâmetro blendFunction da função AlphaBlend .
SB_GRAD_RECT Capaz de fazer retângulos GradientFill .
SB_GRAD_TRI Capaz de fazer triângulos GradientFill .
SB_NONE O dispositivo não dá suporte a nenhum desses recursos.
SB_PIXEL_ALPHA Capaz de lidar com alfa por pixel em AlphaBlend.
SB_PREMULT_ALPHA Capaz de lidar com alfa pré-multiplicado em AlphaBlend.
 
RASTERCAPS
Valor que indica os recursos de varredura do dispositivo, conforme mostrado na tabela a seguir.
RC_BANDING Requer suporte para faixas.
RC_BITBLT Capaz de transferir bitmaps.
RC_BITMAP64 Capaz de dar suporte a bitmaps maiores que 64 KB.
RC_DI_BITMAP Capaz de dar suporte às funções SetDIBits e GetDIBits .
RC_DIBTODEV Capaz de dar suporte à função SetDIBitsToDevice .
RC_FLOODFILL Capaz de executar preenchimentos de inundação.
RC_PALETTE Especifica um dispositivo baseado em paleta.
RC_SCALING Capaz de dimensionar.
RC_STRETCHBLT Capaz de executar a função StretchBlt .
RC_STRETCHDIB Capaz de executar a função StretchDIBits .
 
CURVECAPS
Valor que indica os recursos de curva do dispositivo, conforme mostrado na tabela a seguir.
CC_NONE O dispositivo não dá suporte a curvas.
CC_CHORD O dispositivo pode desenhar arcos de acordes.
CC_CIRCLES O dispositivo pode desenhar círculos.
CC_ELLIPSES O dispositivo pode desenhar reticências.
CC_INTERIORS O dispositivo pode desenhar interiores.
CC_PIE O dispositivo pode desenhar cunhas de pizza.
CC_ROUNDRECT O dispositivo pode desenhar retângulos arredondados.
CC_STYLED O dispositivo pode desenhar bordas estilizadas.
CC_WIDE O dispositivo pode desenhar bordas largas.
CC_WIDESTYLED O dispositivo pode desenhar bordas largas e estilizadas.
 
LINECAPS
Valor que indica os recursos de linha do dispositivo, conforme mostrado na tabela a seguir:
LC_NONE O dispositivo não dá suporte a linhas.
LC_INTERIORS O dispositivo pode desenhar interiores.
LC_MARKER O dispositivo pode desenhar um marcador.
LC_POLYLINE O dispositivo pode desenhar uma polilinha.
LC_POLYMARKER O dispositivo pode desenhar vários marcadores.
LC_STYLED O dispositivo pode desenhar linhas estilizadas.
LC_WIDE O dispositivo pode desenhar linhas largas.
LC_WIDESTYLED O dispositivo pode desenhar linhas largas e estilizadas.
 
POLYGONALCAPS
Valor que indica os recursos de polígono do dispositivo, conforme mostrado na tabela a seguir.
PC_NONE O dispositivo não dá suporte a polígonos.
PC_INTERIORS O dispositivo pode desenhar interiores.
PC_POLYGON O dispositivo pode desenhar polígonos de preenchimento alternativo.
PC_RECTANGLE O dispositivo pode desenhar retângulos.
PC_SCANLINE O dispositivo pode desenhar uma única linha de verificação.
PC_STYLED O dispositivo pode desenhar bordas estilizadas.
PC_WIDE O dispositivo pode desenhar bordas largas.
PC_WIDESTYLED O dispositivo pode desenhar bordas largas e estilizadas.
PC_WINDPOLYGON O dispositivo pode desenhar polígonos de preenchimento sinuoso.
 
TEXTCAPS
Valor que indica os recursos de texto do dispositivo, conforme mostrado na tabela a seguir.
TC_OP_CHARACTER O dispositivo é capaz de precisão de saída de caractere.
TC_OP_STROKE O dispositivo é capaz de obter precisão de saída de traço.
TC_CP_STROKE O dispositivo é capaz de obter precisão de recorte de traço.
TC_CR_90 O dispositivo é capaz de rotação de caracteres de 90 graus.
TC_CR_ANY O dispositivo é capaz de qualquer rotação de caracteres.
TC_SF_X_YINDEP O dispositivo pode ser dimensionado independentemente nas direções x e y.
TC_SA_DOUBLE O dispositivo é capaz de dobrar o caractere para dimensionamento.
TC_SA_INTEGER O dispositivo usa múltiplos inteiros apenas para dimensionamento de caracteres.
TC_SA_CONTIN O dispositivo usa múltiplos para dimensionamento exato de caracteres.
TC_EA_DOUBLE O dispositivo pode desenhar caracteres de peso duplo.
TC_IA_ABLE O dispositivo pode itálico.
TC_UA_ABLE O dispositivo pode sublinhar.
TC_SO_ABLE O dispositivo pode desenhar strikeouts.
TC_RA_ABLE O dispositivo pode desenhar fontes de varredura.
TC_VA_ABLE O dispositivo pode desenhar fontes de vetor.
TC_RESERVED Reservados; deve ser zero.
TC_SCROLLBLT O dispositivo não pode rolar usando uma transferência de bloco de bits. Observe que esse significado pode ser o oposto do que você espera.
 
COLORMGMTCAPS
Valor que indica os recursos de gerenciamento de cores do dispositivo.
CM_CMYK_COLOR O dispositivo pode aceitar o perfil de cor DO ICC de espaço de cor CMYK.
CM_DEVICE_ICM O dispositivo pode executar o ICM no driver do dispositivo ou no próprio dispositivo.
CM_GAMMA_RAMP O dispositivo dá suporte a GetDeviceGammaRamp e SetDeviceGammaRamp
CM_NONE O dispositivo não dá suporte ao ICM.
 

Retornar valor

O valor retornado especifica o valor do item desejado.

Quando nIndex é BITSPIXEL e o dispositivo tem 15bpp ou 16bpp, o valor retornado é 16.

Comentários

Quando nIndex é SHADEBLENDCAPS:

  • Para uma impressora, GetDeviceCaps retorna o que a impressora relata.
  • Para um dispositivo de exibição, todas as operações de mesclagem estão disponíveis; além de SB_NONE, os únicos valores retornados são SB_CONST_ALPHA e SB_PIXEL_ALPHA, que indicam se essas operações são aceleradas.
Em um sistema de vários monitores, se hdc for a área de trabalho, GetDeviceCaps retornará os recursos do monitor primário. Se você quiser informações para outros monitores, deverá usar as APIs de vários monitores ou CreateDC para obter um HDC para o DC (contexto do dispositivo) de um monitor específico.
Nota Display1 normalmente é o monitor primário, mas nem sempre.
 
GetDeviceCaps fornece os seis índices a seguir no lugar de escapes de impressora.
Índice Escape da impressora substituído
PHYSICALWIDTH GETPHYSPAGESIZE
PHYSICALHEIGHT GETPHYSPAGESIZE
PHYSICALOFFSETX GETPRINTINGOFFSET
PHYSICALOFFSETY GETPHYSICALOFFSET
SCALINGFACTORX GETSCALINGFACTOR
SCALINGFACTORY GETSCALINGFACTOR
 
ObservaçãoGetDeviceCaps relata informações que o driver de exibição fornece. Se o driver de exibição se recusar a relatar qualquer informação, GetDeviceCaps calculará as informações com base em cálculos fixos. Se o driver de exibição relatar informações inválidas, GetDeviceCaps retornará as informações inválidas. Além disso, se o driver de exibição se recusar a relatar informações, GetDeviceCaps poderá calcular informações incorretas porque pressupõe um DPI fixo (96 DPI) ou um tamanho fixo (dependendo das informações que o driver de vídeo fez e não forneceu). Infelizmente, um driver de exibição implementado no WDDM (Modelo de Driver de Exibição do Windows) (introduzido no Windows Vista) faz com que a GDI não obtenha as informações, portanto, GetDeviceCaps deve sempre calcular as informações.
 

Exemplos

Para obter um exemplo, consulte Preparando para imprimir.

Requisitos

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

Confira também

CreateEnhMetaFile

CreateIC

Funções de contexto do dispositivo

Visão geral dos contextos do dispositivo

DeviceCapabilities

GetDIBits

GetObjectType

Setdibits

Setdibitstodevice

Stretchblt

Stretchdibits