Funzione GetDeviceCaps (wingdi.h)

La funzione GetDeviceCaps recupera informazioni specifiche del dispositivo per il dispositivo specificato.

Sintassi

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

Parametri

[in] hdc

Handle per il controller di dominio.

[in] index

Elemento da restituire. Questo parametro può avere uno dei valori seguenti.

Indice Significato
DRIVERVERSION
Versione del driver di dispositivo.
TECNOLOGIA
Tecnologia del dispositivo. Può essere uno dei valori seguenti.
DT_PLOTTER Plotter vettoriale
DT_RASDISPLAY Visualizzazione raster
DT_RASPRINTER Stampante Raster
DT_RASCAMERA Fotocamera raster
DT_CHARSTREAM Flusso di caratteri
DT_METAFILE Metafile
DT_DISPFILE Visualizza file
 

Se il parametro hdc è un handle per il controller di dominio di un metafile avanzato, la tecnologia del dispositivo è quella del dispositivo a cui si fa riferimento come specificato alla funzione CreateEnhMetaFile . Per determinare se si tratta di un controller di dominio metafile avanzato, usare la funzione GetObjectType .

HORZSIZE
Larghezza, in millimetri, dello schermo fisico.
VERTSIZE
Altezza, in millimetri, dello schermo fisico.
HORZRES
Larghezza, in pixel, dello schermo; o per le stampanti, la larghezza, in pixel, dell'area stampabile della pagina.
VERTRES
Altezza, in linee raster, dello schermo; o per le stampanti, l'altezza, in pixel, dell'area stampabile della pagina.
LOGPIXELSX
Numero di pixel per pollice logico lungo la larghezza dello schermo. In un sistema con più monitor display, questo valore è lo stesso per tutti i monitor.
LOGPIXELSY
Numero di pixel per pollice logico lungo l'altezza dello schermo. In un sistema con più monitor display, questo valore è lo stesso per tutti i monitor.
BITSPIXEL
Numero di bit di colore adiacenti per ogni pixel.
AEREI
Numero di piani di colore.
NUMBRUSHES
Numero di pennelli specifici del dispositivo.
NUMPENS
Numero di penne specifiche del dispositivo.
NUMFONTS
Numero di tipi di carattere specifici del dispositivo.
NUMCOLORS
Numero di voci nella tabella dei colori del dispositivo, se il dispositivo ha una profondità di colore non superiore a 8 bit per pixel. Per i dispositivi con profondità di colore maggiori, viene restituito -1.
ASPECTX
Larghezza relativa di un pixel del dispositivo utilizzato per il disegno a linee.
ASPETTO
Altezza relativa di un pixel del dispositivo utilizzato per il disegno a linee.
ASPECTXY
Larghezza diagonale del pixel del dispositivo utilizzato per il disegno a linee.
PDEVICESIZE
Riservato.
CLIPCAPS
Flag che indica le funzionalità di ritaglio del dispositivo. Se il dispositivo può ritagliare un rettangolo, è 1. Negli altri casi è 0.
SIZEPALETTE
Numero di voci nella tavolozza di sistema. Questo indice è valido solo se il driver di dispositivo imposta il bit RC_PALETTE nell'indice RASTERCAPS ed è disponibile solo se il driver è compatibile con Windows a 16 bit.
NUMRESERVED
Numero di voci riservate nella tavolozza di sistema. Questo indice è valido solo se il driver di dispositivo imposta il bit RC_PALETTE nell'indice RASTERCAPS ed è disponibile solo se il driver è compatibile con Windows a 16 bit.
COLORRES
Risoluzione effettiva del colore del dispositivo, in bit per pixel. Questo indice è valido solo se il driver di dispositivo imposta il bit RC_PALETTE nell'indice RASTERCAPS ed è disponibile solo se il driver è compatibile con Windows a 16 bit.
PHYSICALWIDTH
Per i dispositivi di stampa: larghezza della pagina fisica, in unità dispositivo. Ad esempio, una stampante impostata per la stampa a 600 dpi su carta da 8,5 x11 pollici ha un valore di larghezza fisica pari a 5100 unità dispositivo. Si noti che la pagina fisica è quasi sempre maggiore dell'area stampabile della pagina e mai più piccola.
PHYSICALHEIGHT
Per i dispositivi di stampa: altezza della pagina fisica, in unità dispositivo. Ad esempio, una stampante impostata su 600 dpi su carta da 8,5 per 11 pollici ha un valore di altezza fisica pari a 6600 unità dispositivo. Si noti che la pagina fisica è quasi sempre maggiore dell'area stampabile della pagina e mai più piccola.
PHYSICALOFFSETX
Per i dispositivi di stampa: distanza tra il bordo sinistro della pagina fisica e il bordo sinistro dell'area stampabile, nelle unità dispositivo. Ad esempio, una stampante impostata su 600 dpi su carta da 8,5 per 11 pollici, che non può stampare sul foglio di carta più a sinistra di 0,25 pollici, ha un offset fisico orizzontale di 150 unità dispositivo.
PHYSICALOFFSETY
Per i dispositivi di stampa: distanza tra il bordo superiore della pagina fisica e il bordo superiore dell'area stampabile, in unità dispositivo. Ad esempio, una stampante impostata per la stampa a 600 dpi su carta da 8,5 per 11 pollici, che non può stampare nella parte superiore della carta da 0,5 pollici, ha un offset fisico verticale di 300 unità dispositivo.
VREFRESH
Per i dispositivi di visualizzazione: frequenza di aggiornamento verticale corrente del dispositivo, in cicli al secondo (Hz).

Un valore di frequenza di aggiornamento verticale pari a 0 o 1 rappresenta la frequenza di aggiornamento predefinita dell'hardware di visualizzazione. Questa frequenza predefinita viene in genere impostata da commutatori su una scheda di visualizzazione o scheda madre del computer o da un programma di configurazione che non usa funzioni di visualizzazione come ChangeDisplaySettings.

SCALINGFACTORX
Fattore di ridimensionamento per l'asse x della stampante.
SCALINGFACTORY
Fattore di ridimensionamento per l'asse y della stampante.
BLTALIGNMENT
Allineamento del disegno orizzontale preferito, espresso come multiplo di pixel. Per ottenere prestazioni ottimali per il disegno, le finestre devono essere allineate orizzontalmente a un multiplo di questo valore. Un valore pari a zero indica che il dispositivo è accelerato e che è possibile usare qualsiasi allineamento.
SHADEBLENDCAPS
Valore che indica le funzionalità di ombreggiatura e fusione del dispositivo. Per ulteriori commenti, vedere la sezione Osservazioni.
SB_CONST_ALPHA Gestisce il membro SourceConstantAlpha della struttura BLENDFUNCTION , a cui fa riferimento il parametro blendFunction della funzione AlphaBlend .
SB_GRAD_RECT In grado di eseguire rettangoli GradientFill .
SB_GRAD_TRI In grado di eseguire triangoli GradientFill .
SB_NONE Il dispositivo non supporta alcuna di queste funzionalità.
SB_PIXEL_ALPHA In grado di gestire alfa per pixel in AlphaBlend.
SB_PREMULT_ALPHA In grado di gestire alfa premoltiplicato in AlphaBlend.
 
RASTERCAPS
Valore che indica le funzionalità raster del dispositivo, come illustrato nella tabella seguente.
RC_BANDING Richiede il supporto per la banda.
RC_BITBLT In grado di trasferire bitmap.
RC_BITMAP64 In grado di supportare bitmap di dimensioni superiori a 64 KB.
RC_DI_BITMAP In grado di supportare le funzioni SetDIBits e GetDIBits .
RC_DIBTODEV In grado di supportare la funzione SetDIBitsToDevice .
RC_FLOODFILL In grado di eseguire riempimenti alle inondazioni.
RC_PALETTE Specifica un dispositivo basato sulla tavolozza.
RC_SCALING In grado di ridimensionare.
RC_STRETCHBLT In grado di eseguire la funzione StretchBlt .
RC_STRETCHDIB In grado di eseguire la funzione StretchDIBits .
 
CURVECAPS
Valore che indica le funzionalità della curva del dispositivo, come illustrato nella tabella seguente.
CC_NONE Il dispositivo non supporta le curve.
CC_CHORD Il dispositivo può disegnare archi accordi.
CC_CIRCLES Il dispositivo può disegnare cerchi.
CC_ELLIPSES Il dispositivo può disegnare puntini di sospensione.
CC_INTERIORS Il dispositivo può disegnare interni.
CC_PIE Il dispositivo può disegnare spighe a torta.
CC_ROUNDRECT Il dispositivo può disegnare rettangoli arrotondati.
CC_STYLED Il dispositivo può disegnare bordi con stile.
CC_WIDE Il dispositivo può disegnare bordi ampi.
CC_WIDESTYLED Il dispositivo può disegnare bordi ampi e in stile.
 
LINECAPS
Valore che indica le funzionalità della riga del dispositivo, come illustrato nella tabella seguente:
LC_NONE Il dispositivo non supporta le linee.
LC_INTERIORS Il dispositivo può disegnare interni.
LC_MARKER Il dispositivo può disegnare un marcatore.
LC_POLYLINE Il dispositivo può disegnare una polilinea.
LC_POLYMARKER Il dispositivo può disegnare più marcatori.
LC_STYLED Il dispositivo può disegnare linee con stile.
LC_WIDE Il dispositivo può disegnare linee larghe.
LC_WIDESTYLED Il dispositivo può disegnare linee larghe e in stile.
 
POLIGONOCAPS
Valore che indica le funzionalità poligono del dispositivo, come illustrato nella tabella seguente.
PC_NONE Il dispositivo non supporta i poligoni.
PC_INTERIORS Il dispositivo può disegnare interni.
PC_POLYGON Il dispositivo può disegnare poligoni di riempimento alternativo.
PC_RECTANGLE Il dispositivo può disegnare rettangoli.
PC_SCANLINE Il dispositivo può disegnare una singola riga di analisi.
PC_STYLED Il dispositivo può disegnare bordi con stile.
PC_WIDE Il dispositivo può disegnare bordi ampi.
PC_WIDESTYLED Il dispositivo può disegnare bordi estesi e in stile.
PC_WINDPOLYGON Il dispositivo può disegnare poligoni di riempimento di riempimento.
 
TEXTCAPS
Valore che indica le funzionalità di testo del dispositivo, come illustrato nella tabella seguente.
TC_OP_CHARACTER Il dispositivo è in grado di precisione dell'output dei caratteri.
TC_OP_STROKE Il dispositivo è in grado di eseguire la precisione dell'output del tratto.
TC_CP_STROKE Il dispositivo è in grado di eseguire la precisione del ritaglio del tratto.
TC_CR_90 Il dispositivo è in grado di rotazione di caratteri a 90 gradi.
TC_CR_ANY Il dispositivo è in grado di qualsiasi rotazione dei caratteri.
TC_SF_X_YINDEP Il dispositivo può ridimensionare in modo indipendente le direzioni x e y.
TC_SA_DOUBLE Il dispositivo è in grado di doppiare il carattere per il ridimensionamento.
TC_SA_INTEGER Il dispositivo usa più interi solo per il ridimensionamento dei caratteri.
TC_SA_CONTIN Il dispositivo usa più più per il ridimensionamento esatto dei caratteri.
TC_EA_DOUBLE Il dispositivo può disegnare caratteri a doppio peso.
TC_IA_ABLE Il dispositivo può essere corsivo.
TC_UA_ABLE Il dispositivo può sottolineare.
TC_SO_ABLE Il dispositivo può disegnare strikeout.
TC_RA_ABLE Il dispositivo può disegnare tipi di carattere raster.
TC_VA_ABLE Il dispositivo può disegnare tipi di carattere vettoriali.
TC_RESERVED Riservati; deve essere zero.
TC_SCROLLBLT Il dispositivo non può scorrere usando un trasferimento a blocchi bit. Si noti che questo significato può essere l'opposto di quello che ci si aspetta.
 
COLORMGMTCAPS
Valore che indica le funzionalità di gestione dei colori del dispositivo.
CM_CMYK_COLOR Il dispositivo può accettare il profilo di colore DELL'ICC dello spazio dei colori CMYK.
CM_DEVICE_ICM Il dispositivo può eseguire ICM sul driver del dispositivo o sul dispositivo stesso.
CM_GAMMA_RAMP Il dispositivo supporta GetDeviceGammaRamp e SetDeviceGammaRamp
CM_NONE Il dispositivo non supporta ICM.
 

Valore restituito

Il valore restituito specifica il valore dell'elemento desiderato.

Quando nIndex è BITSPIXEL e il dispositivo ha 15bpp o 16bpp, il valore restituito è 16.

Commenti

Quando nIndex è SHADEBLENDCAPS:

  • Per una stampante, GetDeviceCaps restituisce qualsiasi report della stampante.
  • Per un dispositivo di visualizzazione, tutte le operazioni di fusione sono disponibili; oltre a SB_NONE, gli unici valori restituiti sono SB_CONST_ALPHA e SB_PIXEL_ALPHA, che indicano se queste operazioni sono accelerate.
In un sistema di monitoraggio multiplo, se hdc è il desktop, GetDeviceCaps restituisce le funzionalità del monitoraggio primario. Se si desiderano informazioni per altri monitor, è necessario usare le API multi-monitor o CreateDC per ottenere un HDC per il contesto del dispositivo (DC) di un monitoraggio specifico.
Nota Display1 è in genere il monitoraggio primario, ma non sempre.
 
GetDeviceCaps fornisce i sei indici seguenti al posto di escape della stampante.
Indice Escape della stampante sostituito
PHYSICALWIDTH GETPHYSPAGESIZE
PHYSICALHEIGHT GETPHYSPAGESIZE
PHYSICALOFFSETX GETPRINTINGOFFSET
PHYSICALOFFSETY GETPHYSICALOFFSET
SCALINGFACTORX GETSCALINGFACTOR
SCALINGFACTORY GETSCALINGFACTOR
 
NotaGetDeviceCaps segnala informazioni fornite dal driver visualizzato. Se il driver di visualizzazione rifiuta di segnalare informazioni, GetDeviceCaps calcola le informazioni in base ai calcoli fissi. Se il driver visualizzato segnala informazioni non valide, GetDeviceCaps restituisce le informazioni non valide. Inoltre, se il driver di visualizzazione rifiuta di segnalare informazioni, GetDeviceCaps potrebbe calcolare informazioni non corrette perché presuppone che dpi fissi (96 DPI) o dimensioni fisse (a seconda delle informazioni eseguite dal driver di visualizzazione e non fornite). Sfortunatamente, un driver visualizzato implementato nel modello di driver visualizzato windows (WDDM) (introdotto in Windows Vista) causa l'errore GDI per non ottenere le informazioni, quindi GetDeviceCaps deve sempre calcolare le informazioni.
 

Esempio

Per un esempio, vedere Preparazione alla stampa.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wingdi.h (include Windows.h)
Libreria Gdi32.lib
DLL Gdi32.dll

Vedi anche

CreateEnhMetaFile

CreateIC

Funzioni del contesto di dispositivo

Panoramica dei contesti di dispositivo

DeviceCapabilities

GetDIBits

GetObjectType

SetDIBits

SetDIBitsToDevice

StretchBlt

StretchDIBits