Función GetDeviceCaps (wingdi.h)

La función GetDeviceCaps recupera información específica del dispositivo para el dispositivo especificado.

Sintaxis

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

Parámetros

[in] hdc

Identificador del controlador de dominio.

[in] index

Elemento que se va a devolver. Este parámetro puede ser uno de los valores siguientes.

Índice Significado
DRIVERVERSION
La versión del controlador de dispositivo.
TECNOLOGÍA
Tecnología del dispositivo. Puede ser cualquiera de los valores siguientes.
DT_PLOTTER Trazador vectorial
DT_RASDISPLAY Visualización de tramas
DT_RASPRINTER Impresora raster
DT_RASCAMERA Cámara ráster
DT_CHARSTREAM Secuencia de caracteres
DT_METAFILE Metarchivo de
DT_DISPFILE Mostrar archivo
 

Si el parámetro hdc es un identificador del controlador de dominio de un metarchivo mejorado, la tecnología del dispositivo es la del dispositivo al que se hace referencia como se especifica en la función CreateEnhMetaFile . Para determinar si es un controlador de dominio de metarchivo mejorado, use la función GetObjectType .

HORZSIZE
Ancho, en milímetros, de la pantalla física.
VERTSIZE
Alto, en milímetros, de la pantalla física.
HORZRES
Ancho, en píxeles, de la pantalla; o para impresoras, el ancho, en píxeles, del área imprimible de la página.
VERTRES
Alto, en líneas raster, de la pantalla; o para las impresoras, el alto, en píxeles, del área imprimible de la página.
LOGPIXELSX
Número de píxeles por pulgada lógica a lo largo del ancho de la pantalla. En un sistema con varios monitores de visualización, este valor es el mismo para todos los monitores.
LOGPIXELSY
Número de píxeles por pulgada lógica a lo largo del alto de la pantalla. En un sistema con varios monitores de visualización, este valor es el mismo para todos los monitores.
BITSPIXEL
Número de bits de color adyacentes para cada píxel.
AVIONES
Número de planos de color.
ENTUMECIMIENTOS
Número de pinceles específicos del dispositivo.
NUMPENS
Número de lápices específicos del dispositivo.
NUMFONTS
Número de fuentes específicas del dispositivo.
NUMCOLORS
Número de entradas en la tabla de colores del dispositivo, si el dispositivo tiene una profundidad de color de no más de 8 bits por píxel. En el caso de los dispositivos con mayores profundidades de color, se devuelve -1.
ASPECTX
Ancho relativo de un píxel de dispositivo usado para el dibujo de líneas.
ASPECTO
Alto relativo de un píxel de dispositivo usado para el dibujo de líneas.
ASPECTXY
Ancho diagonal del píxel del dispositivo usado para el dibujo de líneas.
PDEVICESIZE
Reservado.
CLIPCAPS
Marca que indica las funcionalidades de recorte del dispositivo. Si el dispositivo puede recortar en un rectángulo, es 1. De lo contrario, es 0.
SIZEPALETTE
Número de entradas en la paleta del sistema. Este índice solo es válido si el controlador de dispositivo establece el bit RC_PALETTE en el índice RASTERCAPS y solo está disponible si el controlador es compatible con Windows de 16 bits.
NUMRESERVED
Número de entradas reservadas en la paleta del sistema. Este índice solo es válido si el controlador de dispositivo establece el bit RC_PALETTE en el índice RASTERCAPS y solo está disponible si el controlador es compatible con Windows de 16 bits.
COLORRES
Resolución de color real del dispositivo, en bits por píxel. Este índice solo es válido si el controlador de dispositivo establece el bit RC_PALETTE en el índice RASTERCAPS y solo está disponible si el controlador es compatible con Windows de 16 bits.
PHYSICALWIDTH
Para imprimir dispositivos: el ancho de la página física, en unidades de dispositivo. Por ejemplo, una impresora establecida para imprimir a 600 ppp en papel de 8,5 x11 pulgadas tiene un valor de ancho físico de 5100 unidades de dispositivo. Tenga en cuenta que la página física es casi siempre mayor que el área imprimible de la página y nunca más pequeña.
PHYSICALHEIGHT
Para imprimir dispositivos: el alto de la página física, en unidades de dispositivo. Por ejemplo, una impresora establecida para imprimir a 600 ppp en papel de 8,5 a 11 pulgadas tiene un valor de alto físico de 6600 unidades de dispositivo. Tenga en cuenta que la página física es casi siempre mayor que el área imprimible de la página y nunca más pequeña.
PHYSICALOFFSETX
Para imprimir dispositivos: distancia desde el borde izquierdo de la página física hasta el borde izquierdo del área imprimible, en unidades de dispositivo. Por ejemplo, una impresora configurada para imprimir a 600 ppp en papel de 8,5 a 11 pulgadas, que no se puede imprimir en el papel izquierdo de 0,25 pulgadas, tiene un desplazamiento físico horizontal de 150 unidades de dispositivo.
PHYSICALOFFSETY
Para imprimir dispositivos: distancia desde el borde superior de la página física hasta el borde superior del área imprimible, en unidades de dispositivo. Por ejemplo, una impresora configurada para imprimir a 600 ppp en papel de 8,5 a 11 pulgadas, que no se puede imprimir en la parte superior del papel de 0,5 pulgadas, tiene un desplazamiento físico vertical de 300 unidades de dispositivo.
VREFRESH
Para dispositivos de pantalla: la frecuencia de actualización vertical actual del dispositivo, en ciclos por segundo (Hz).

Un valor de frecuencia de actualización vertical de 0 o 1 representa la frecuencia de actualización predeterminada del hardware de pantalla. Esta velocidad predeterminada se establece normalmente mediante conmutadores en una tarjeta de pantalla o una placa base del equipo, o por un programa de configuración que no usa funciones de visualización como ChangeDisplaySettings.

SCALINGFACTORX
Factor de escala para el eje X de la impresora.
SCALINGFACTORY
Factor de escala para el eje Y de la impresora.
BLTALIGNMENT
Alineación de dibujo horizontal preferida, expresada como múltiplo de píxeles. Para obtener el mejor rendimiento de dibujo, las ventanas deben alinearse horizontalmente con un múltiplo de este valor. Un valor de cero indica que el dispositivo está acelerado y se puede usar cualquier alineación.
SHADEBLENDCAPS
Valor que indica las funcionalidades de sombreado y combinación del dispositivo. Vea Comentarios para obtener más comentarios.
SB_CONST_ALPHA Controla el miembro SourceConstantAlpha de la estructura BLENDFUNCTION , al que hace referencia el parámetro blendFunction de la función AlphaBlend .
SB_GRAD_RECT Capaz de hacer rectángulos GradientFill .
SB_GRAD_TRI Capaz de hacer triángulos GradientFill .
SB_NONE El dispositivo no admite ninguna de estas funcionalidades.
SB_PIXEL_ALPHA Capaz de controlar alfa por píxel en AlphaBlend.
SB_PREMULT_ALPHA Capaz de controlar alfa premultiplicado en AlphaBlend.
 
RASTERCAPS
Valor que indica las funcionalidades de trama del dispositivo, como se muestra en la tabla siguiente.
RC_BANDING Requiere compatibilidad con bandas.
RC_BITBLT Capaz de transferir mapas de bits.
RC_BITMAP64 Capaz de admitir mapas de bits de más de 64 KB.
RC_DI_BITMAP Capaz de admitir las funciones SetDIBits y GetDIBits .
RC_DIBTODEV Capaz de admitir la función SetDIBitsToDevice .
RC_FLOODFILL Capaz de realizar rellenos de inundación.
RC_PALETTE Especifica un dispositivo basado en paletas.
RC_SCALING Capaz de escalar.
RC_STRETCHBLT Capaz de realizar la función StretchBlt .
RC_STRETCHDIB Capaz de realizar la función StretchDIBits .
 
CURVECAPS
Valor que indica las funcionalidades de curva del dispositivo, como se muestra en la tabla siguiente.
CC_NONE El dispositivo no admite curvas.
CC_CHORD El dispositivo puede dibujar arcos acordes.
CC_CIRCLES El dispositivo puede dibujar círculos.
CC_ELLIPSES El dispositivo puede dibujar puntos suspensivos.
CC_INTERIORS El dispositivo puede dibujar interiores.
CC_PIE El dispositivo puede dibujar cuñas circulares.
CC_ROUNDRECT El dispositivo puede dibujar rectángulos redondeados.
CC_STYLED El dispositivo puede dibujar bordes con estilo.
CC_WIDE El dispositivo puede dibujar bordes anchos.
CC_WIDESTYLED El dispositivo puede dibujar bordes anchos y con estilo.
 
LINECAPS
Valor que indica las funcionalidades de línea del dispositivo, como se muestra en la tabla siguiente:
LC_NONE El dispositivo no admite líneas.
LC_INTERIORS El dispositivo puede dibujar interiores.
LC_MARKER El dispositivo puede dibujar un marcador.
LC_POLYLINE El dispositivo puede dibujar una polilínea.
LC_POLYMARKER El dispositivo puede dibujar varios marcadores.
LC_STYLED El dispositivo puede dibujar líneas con estilo.
LC_WIDE El dispositivo puede dibujar líneas anchas.
LC_WIDESTYLED El dispositivo puede dibujar líneas anchas y con estilo.
 
POLYGONALCAPS
Valor que indica las funcionalidades de polígono del dispositivo, como se muestra en la tabla siguiente.
PC_NONE El dispositivo no admite polígonos.
PC_INTERIORS El dispositivo puede dibujar interiores.
PC_POLYGON El dispositivo puede dibujar polígonos de relleno alternativo.
PC_RECTANGLE El dispositivo puede dibujar rectángulos.
PC_SCANLINE El dispositivo puede dibujar una sola línea de examen.
PC_STYLED El dispositivo puede dibujar bordes con estilo.
PC_WIDE El dispositivo puede dibujar bordes anchos.
PC_WIDESTYLED El dispositivo puede dibujar bordes anchos y con estilo.
PC_WINDPOLYGON El dispositivo puede dibujar polígonos de relleno de viento.
 
TEXTCAPS
Valor que indica las funcionalidades de texto del dispositivo, como se muestra en la tabla siguiente.
TC_OP_CHARACTER El dispositivo es capaz de precisión de salida de caracteres.
TC_OP_STROKE El dispositivo es capaz de precisión de salida del trazo.
TC_CP_STROKE El dispositivo es capaz de precisión de recorte de trazos.
TC_CR_90 El dispositivo es capaz de rotar caracteres de 90 grados.
TC_CR_ANY El dispositivo es capaz de realizar cualquier rotación de caracteres.
TC_SF_X_YINDEP El dispositivo se puede escalar de forma independiente en las direcciones x e y.
TC_SA_DOUBLE El dispositivo es capaz de duplicar el carácter para el escalado.
TC_SA_INTEGER El dispositivo usa múltiplo entero solo para el escalado de caracteres.
TC_SA_CONTIN El dispositivo usa cualquier múltiplo para el escalado exacto de caracteres.
TC_EA_DOUBLE El dispositivo puede dibujar caracteres de doble peso.
TC_IA_ABLE El dispositivo puede cursiva.
TC_UA_ABLE El dispositivo puede subrayado.
TC_SO_ABLE El dispositivo puede dibujar los tachos.
TC_RA_ABLE El dispositivo puede dibujar fuentes ráster.
TC_VA_ABLE El dispositivo puede dibujar fuentes vectoriales.
TC_RESERVED Reservados; debe ser cero.
TC_SCROLLBLT El dispositivo no puede desplazarse mediante una transferencia de bloques de bits. Tenga en cuenta que este significado puede ser el contrario de lo que espera.
 
COLORMGMTCAPS
Valor que indica las funcionalidades de administración de colores del dispositivo.
CM_CMYK_COLOR El dispositivo puede aceptar el perfil de color ICC del espacio de colores CMYK.
CM_DEVICE_ICM El dispositivo puede realizar ICM en el controlador de dispositivo o en el propio dispositivo.
CM_GAMMA_RAMP El dispositivo admite GetDeviceGammaRamp y SetDeviceGammaRamp
CM_NONE El dispositivo no admite ICM.
 

Valor devuelto

El valor devuelto especifica el valor del elemento deseado.

Cuando nIndex es BITSPIXEL y el dispositivo tiene 15bpp o 16bpp, el valor devuelto es 16.

Comentarios

Cuando nIndex es SHADEBLENDCAPS:

  • Para una impresora, GetDeviceCaps devuelve lo que informe la impresora.
  • Para un dispositivo de visualización, todas las operaciones de fusión están disponibles; además de SB_NONE, los únicos valores devueltos son SB_CONST_ALPHA y SB_PIXEL_ALPHA, lo que indica si estas operaciones se aceleran.
En un sistema de supervisión múltiple, si hdc es el escritorio, GetDeviceCaps devuelve las funcionalidades del monitor principal. Si quiere información para otros monitores, debe usar las API de varios monitores o CreateDC para obtener un HDC para el contexto del dispositivo (DC) de un monitor específico.
Nota Display1 suele ser el monitor principal, pero no siempre.
 
GetDeviceCaps proporciona los seis índices siguientes en lugar de escapes de impresora.
Índice Escape de impresora reemplazado
PHYSICALWIDTH GETPHYSPAGESIZE
PHYSICALHEIGHT GETPHYSPAGESIZE
PHYSICALOFFSETX GETPRINTINGOFFSET
PHYSICALOFFSETY GETPHYSICALOFFSET
SCALINGFACTORX GETSCALINGFACTOR
SCALINGFACTORY GETSCALINGFACTOR
 
NotaGetDeviceCaps informa de la información que proporciona el controlador de pantalla. Si el controlador de pantalla rechaza informar de cualquier información, GetDeviceCaps calcula la información en función de los cálculos fijos. Si el controlador para mostrar notifica información no válida, GetDeviceCaps devuelve la información no válida. Además, si el controlador de pantalla rechaza informar de la información, GetDeviceCaps podría calcular información incorrecta porque supone un PPP fijo (96 PPP) o un tamaño fijo (en función de la información que hizo el controlador de pantalla y no proporcionó). Desafortunadamente, un controlador de pantalla que se implementa en el modelo de controlador de pantalla de Windows (WDDM) (introducido en Windows Vista) hace que GDI no obtenga la información, por lo que GetDeviceCaps siempre debe calcular la información.
 

Ejemplos

Para obtener un ejemplo, consulte Preparación para imprimir.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wingdi.h (incluye Windows.h)
Library Gdi32.lib
Archivo DLL Gdi32.dll

Consulte también

CreateEnhMetaFile

CreateIC

Funciones de contexto de dispositivo

Información general sobre contextos de dispositivo

DeviceCapabilities

GetDIBits

GetObjectType

SetDIBits

SetDIBitsToDevice

StretchBlt

StretchDIBits