GetDeviceCaps-Funktion (wingdi.h)

Die GetDeviceCaps-Funktion ruft gerätespezifische Informationen für das angegebene Gerät ab.

Syntax

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

Parameter

[in] hdc

Ein Handle für den DC.

[in] index

Das zurückzugebende Element. Dieser Parameter kann einen der folgenden Werte annehmen.

Index Bedeutung
DRIVERVERSION
Die Gerätetreiberversion.
TECHNOLOGIE
Gerätetechnologie. Es kann sich um einen der folgenden Werte handeln.
DT_PLOTTER Vektorplotter
DT_RASDISPLAY Rasteranzeige
DT_RASPRINTER Rasterdrucker
DT_RASCAMERA Rasterkamera
DT_CHARSTREAM Zeichendatenstrom
DT_METAFILE Metafile
DT_DISPFILE Datei anzeigen
 

Wenn der hdc-Parameter ein Handle für den DC einer erweiterten Metadatei ist, ist die Gerätetechnologie die des Geräts, auf das verwiesen wird, wie für die CreateEnhMetaFile-Funktion angegeben. Verwenden Sie die GetObjectType-Funktion , um zu bestimmen, ob es sich um einen erweiterten Metadatei-DC handelt.

HORZSIZE
Breite des physischen Bildschirms in Millimetern.
VERTSIZE
Höhe des physischen Bildschirms in Millimetern.
HORZRES
Breite des Bildschirms in Pixel; oder bei Druckern die Breite des druckbaren Bereichs der Seite in Pixel.
VERTRES
Höhe des Bildschirms in Rasterlinien; oder bei Druckern die Höhe des druckbaren Bereichs der Seite in Pixel.
LOGPIXELSX
Die Anzahl der Pixel pro logischem Zoll entlang der Bildschirmbreite. In einem System mit mehreren Anzeigemonitoren ist dieser Wert für alle Monitore gleich.
LOGPIXELSY
Anzahl der Pixel pro logischem Zoll entlang der Bildschirmhöhe. In einem System mit mehreren Anzeigemonitoren ist dieser Wert für alle Monitore gleich.
BITSPIXEL
Anzahl der benachbarten Farbbits für jedes Pixel.
FLUGZEUGE
Anzahl der Farbebenen.
NUMBRUSHES
Anzahl gerätespezifischer Pinsel.
NUMPENS
Anzahl gerätespezifischer Stifte.
NUMFONTS
Anzahl gerätespezifischer Schriftarten.
NUMCOLORS
Anzahl der Einträge in der Farbtabelle des Geräts, wenn das Gerät eine Farbtiefe von nicht mehr als 8 Bit pro Pixel aufweist. Bei Geräten mit größeren Farbtiefen wird -1 zurückgegeben.
ASPECTX
Relative Breite eines Gerätepixels, das für das Zeichnen von Linien verwendet wird.
ASPEKT
Relative Höhe eines Gerätepixels, das zum Zeichnen von Linien verwendet wird.
ASPECTXY
Diagonale Breite des Gerätepixels, das zum Zeichnen von Linien verwendet wird.
PDEVICESIZE
Reserviert.
CLIPCAPS
Flag, das die Abschneidefunktionen des Geräts angibt. Wenn das Gerät ein Rechteck ausschneiden kann, ist es 1. Andernfalls ist der Wert 0.
SIZEPALETTE
Anzahl der Einträge in der Systempalette. Dieser Index ist nur gültig, wenn der Gerätetreiber das RC_PALETTE Bit im RASTERCAPS-Index festlegt und nur verfügbar ist, wenn der Treiber mit 16-Bit-Windows kompatibel ist.
NUMRESERVED
Anzahl der reservierten Einträge in der Systempalette. Dieser Index ist nur gültig, wenn der Gerätetreiber das RC_PALETTE Bit im RASTERCAPS-Index festlegt und nur verfügbar ist, wenn der Treiber mit 16-Bit-Windows kompatibel ist.
COLORRES
Tatsächliche Farbauflösung des Geräts in Bits pro Pixel. Dieser Index ist nur gültig, wenn der Gerätetreiber das RC_PALETTE Bit im RASTERCAPS-Index festlegt und nur verfügbar ist, wenn der Treiber mit 16-Bit-Windows kompatibel ist.
PHYSICALWIDTH
Für Druckgeräte: die Breite der physischen Seite in Geräteeinheiten. Ein Drucker, der mit 600 dpi auf 8,5 x11 Zoll Papier drucken soll, weist beispielsweise einen Physischen Breitenwert von 5100 Geräteeinheiten auf. Beachten Sie, dass die physische Seite fast immer größer als der druckbare Bereich der Seite und nie kleiner ist.
PHYSICALHEIGHT
Für Druckgeräte: Die Höhe der physischen Seite in Geräteeinheiten. Beispielsweise weist ein Drucker, der mit 600 dpi auf 8,5 x 11 Zoll Papier drucken soll, einen physischen Höhenwert von 6600 Geräteeinheiten auf. Beachten Sie, dass die physische Seite fast immer größer als der druckbare Bereich der Seite und nie kleiner ist.
PHYSICALOFFSETX
Für Druckgeräte: Der Abstand vom linken Rand der physischen Seite zum linken Rand des druckbaren Bereichs in Geräteeinheiten. Ein Drucker, der beispielsweise mit 600 dpi auf 8,5 x 11 Zoll Papier drucken soll, das nicht auf dem linken 0,25 Zoll Papier drucken kann, verfügt über einen horizontalen physischen Offset von 150 Geräteeinheiten.
PHYSICALOFFSETY
Für Druckgeräte: Der Abstand vom oberen Rand der physischen Seite zum oberen Rand des druckbaren Bereichs in Geräteeinheiten. Beispielsweise verfügt ein Drucker, der mit 600 dpi auf 8,5 x 11 Zoll Papier drucken soll, das nicht auf das oberste 0,5-Zoll-Papier drucken kann, einen vertikalen physischen Offset von 300 Geräteeinheiten.
VREFRESH
Für Anzeigegeräte: die aktuelle vertikale Aktualisierungsrate des Geräts in Zyklen pro Sekunde (Hz).

Der Wert der vertikalen Aktualisierungsrate von 0 oder 1 stellt die Standardaktualisierungsrate der Anzeigehardware dar. Diese Standardrate wird in der Regel durch Schalter auf einer Anzeige Karte oder einer Computerplatine oder durch ein Konfigurationsprogramm festgelegt, das keine Anzeigefunktionen wie ChangeDisplaySettings verwendet.

SCALINGFACTORX
Skalierungsfaktor für die x-Achse des Druckers.
SCALINGFACTORY
Skalierungsfaktor für die y-Achse des Druckers.
BLTALIGNMENT
Bevorzugte horizontale Zeichnungsausrichtung, ausgedrückt als Vielfaches von Pixeln. Um eine optimale Zeichnungsleistung zu erzielen, sollten Fenster horizontal auf ein Vielfaches dieses Werts ausgerichtet werden. Der Wert 0 gibt an, dass das Gerät beschleunigt wird und eine beliebige Ausrichtung verwendet werden kann.
SHADEBLENDCAPS
Wert, der die Schattierungs- und Mischfunktionen des Geräts angibt. Weitere Kommentare finden Sie unter Hinweise.
SB_CONST_ALPHA Verarbeitet das SourceConstantAlpha-Element der BLENDFUNCTION-Struktur , auf das der blendFunction-Parameter der AlphaBlend-Funktion verweist.
SB_GRAD_RECT Kann GradientFill-Rechtecke ausführen.
SB_GRAD_TRI In der Lage, GradientFill-Dreiecke zu machen.
SB_NONE Das Gerät unterstützt keine dieser Funktionen.
SB_PIXEL_ALPHA Kann Alpha pro Pixel in AlphaBlend verarbeiten.
SB_PREMULT_ALPHA In der Lage, vormultipliziertes Alpha in AlphaBlend zu verarbeiten.
 
RASTERCAPS
Wert, der die Rasterfunktionen des Geräts angibt, wie in der folgenden Tabelle gezeigt.
RC_BANDING Erfordert Bandunterstützung.
RC_BITBLT Kann Bitmaps übertragen.
RC_BITMAP64 Kann Bitmaps unterstützen, die größer als 64 KB sind.
RC_DI_BITMAP Unterstützt die Funktionen SetDIBits und GetDIBits .
RC_DIBTODEV Kann die SetDIBitsToDevice-Funktion unterstützen.
RC_FLOODFILL In der Lage, Flutfüllungen durchzuführen.
RC_PALETTE Gibt ein palettenbasiertes Gerät an.
RC_SCALING Skalierungsfähig.
RC_STRETCHBLT Kann die StretchBlt-Funktion ausführen.
RC_STRETCHDIB Kann die StretchDIBits-Funktion ausführen.
 
CURVECAPS
Wert, der die Kurvenfunktionen des Geräts angibt, wie in der folgenden Tabelle gezeigt.
CC_NONE Das Gerät unterstützt keine Kurven.
CC_CHORD Das Gerät kann Akkordbögen zeichnen.
CC_CIRCLES Das Gerät kann Kreise zeichnen.
CC_ELLIPSES Das Gerät kann Auslassungspunkte zeichnen.
CC_INTERIORS Das Gerät kann Interieurs zeichnen.
CC_PIE Das Gerät kann Kreis-Wedges zeichnen.
CC_ROUNDRECT Das Gerät kann abgerundete Rechtecke zeichnen.
CC_STYLED Das Gerät kann rahmenformatiert zeichnen.
CC_WIDE Das Gerät kann breite Rahmen zeichnen.
CC_WIDESTYLED Das Gerät kann Rahmen zeichnen, die breit und formatiert sind.
 
LINECAPS
Wert, der die Zeilenfunktionen des Geräts angibt, wie in der folgenden Tabelle gezeigt:
LC_NONE Das Gerät unterstützt keine Zeilen.
LC_INTERIORS Das Gerät kann Interieurs zeichnen.
LC_MARKER Das Gerät kann einen Marker zeichnen.
LC_POLYLINE Das Gerät kann eine Polylinie zeichnen.
LC_POLYMARKER Das Gerät kann mehrere Marker zeichnen.
LC_STYLED Das Gerät kann linienartige Linien zeichnen.
LC_WIDE Das Gerät kann breite Linien zeichnen.
LC_WIDESTYLED Das Gerät kann Linien zeichnen, die breit und formatiert sind.
 
POLYGONALCAPS
Wert, der die Polygonfunktionen des Geräts angibt, wie in der folgenden Tabelle gezeigt.
PC_NONE Das Gerät unterstützt keine Polygone.
PC_INTERIORS Das Gerät kann Interieurs zeichnen.
PC_POLYGON Das Gerät kann Polygone mit alternativer Füllung zeichnen.
PC_RECTANGLE Das Gerät kann Rechtecke zeichnen.
PC_SCANLINE Das Gerät kann eine einzelne Scanlinie zeichnen.
PC_STYLED Das Gerät kann rahmenformatiert zeichnen.
PC_WIDE Das Gerät kann breite Rahmen zeichnen.
PC_WIDESTYLED Das Gerät kann Rahmen zeichnen, die breit und formatiert sind.
PC_WINDPOLYGON Das Gerät kann Wickel-Füllpolygons zeichnen.
 
TEXTCAPS
Wert, der die Textfunktionen des Geräts angibt, wie in der folgenden Tabelle gezeigt.
TC_OP_CHARACTER Das Gerät ist in der Lage, die Genauigkeit der Zeichenausgabe zu verwenden.
TC_OP_STROKE Das Gerät kann Strichausgabegenauigkeit aufweisen.
TC_CP_STROKE Das Gerät kann Strichclipgenauigkeit aufweisen.
TC_CR_90 Das Gerät kann 90-Grad-Zeichendrehung ausführen.
TC_CR_ANY Das Gerät kann jede Zeichenrotation durchführen.
TC_SF_X_YINDEP Das Gerät kann unabhängig in x- und y-Richtung skaliert werden.
TC_SA_DOUBLE Das Gerät kann das Zeichen für die Skalierung verdoppeln.
TC_SA_INTEGER Das Gerät verwendet nur ganzzahlige Vielfache für die Zeichenskalierung.
TC_SA_CONTIN Das Gerät verwendet ein beliebiges Vielfaches für die exakte Zeichenskalierung.
TC_EA_DOUBLE Das Gerät kann Zeichen mit doppelter Gewichtung zeichnen.
TC_IA_ABLE Das Gerät kann kursiv sein.
TC_UA_ABLE Das Gerät kann unterstrichen werden.
TC_SO_ABLE Das Gerät kann Strikeouts zeichnen.
TC_RA_ABLE Das Gerät kann Rasterschriftarten zeichnen.
TC_VA_ABLE Das Gerät kann Vektorschriftarten zeichnen.
TC_RESERVED Reserviert; muss null sein.
TC_SCROLLBLT Das Gerät kann mit einer Bitblockübertragung nicht scrollen. Beachten Sie, dass diese Bedeutung möglicherweise das Gegenteil von dem ist, was Sie erwarten.
 
COLORMGMTCAPS
Wert, der die Farbverwaltungsfunktionen des Geräts angibt.
CM_CMYK_COLOR Das Gerät kann das ICC-Farbprofil im CMYK-Farbraum akzeptieren.
CM_DEVICE_ICM Das Gerät kann ICM entweder auf dem Gerätetreiber oder auf dem Gerät selbst ausführen.
CM_GAMMA_RAMP Gerät unterstützt GetDeviceGammaRamp und SetDeviceGammaRamp
CM_NONE Das Gerät unterstützt ICM nicht.
 

Rückgabewert

Der Rückgabewert gibt den Wert des gewünschten Elements an.

Wenn nIndex BITSPIXEL ist und das Gerät über 15bpp oder 16bpp verfügt, ist der Rückgabewert 16.

Hinweise

Wenn nIndex SHADEBLENDCAPS ist:

  • Für einen Drucker gibt GetDeviceCaps alles zurück, was der Drucker meldet.
  • Für ein Anzeigegerät sind alle Füllvorgänge verfügbar. neben SB_NONE sind die einzigen Rückgabewerte SB_CONST_ALPHA und SB_PIXEL_ALPHA, die angeben, ob diese Vorgänge beschleunigt werden.
Wenn hdc auf einem System mit mehreren Monitoren der Desktop ist, gibt GetDeviceCaps die Funktionen des primären Monitors zurück. Wenn Sie Informationen zu anderen Monitoren benötigen, müssen Sie die Multimonitor-APIs oder CreateDC verwenden, um einen HDC für den Gerätekontext (DC) eines bestimmten Monitors abzurufen.
Hinweis Display1 ist in der Regel der primäre Monitor, aber nicht immer.
 
GetDeviceCaps stellt die folgenden sechs Indizes anstelle von Drucker-Escapes bereit.
Index Drucker escape ersetzt
PHYSICALWIDTH GETPHYSPAGESIZE
PHYSICALHEIGHT GETPHYSPAGESIZE
PHYSICALOFFSETX GETPRINTINGOFFSET
PHYSICALOFFSETY GETPHYSICALOFFSET
SCALINGFACTORX GETSCALINGFACTOR
SCALINGFACTORY GETSCALINGFACTOR
 
HinweisGetDeviceCaps meldet Informationen, die der Anzeigetreiber bereitstellt. Wenn der Anzeigetreiber keine Informationen meldet, berechnet GetDeviceCaps die Informationen basierend auf festen Berechnungen. Wenn der Anzeigetreiber ungültige Informationen meldet, gibt GetDeviceCaps die ungültigen Informationen zurück. Wenn der Anzeigetreiber die Meldung von Informationen ablehnt, berechnet GetDeviceCaps möglicherweise falsche Informationen, da entweder eine feste DPI (96 DPI) oder eine feste Größe (abhängig von den Vom Anzeigetreiber bereitgestellten und nicht bereitgestellten Informationen) angenommen wird. Leider führt ein Anzeigetreiber, der in das Windows Display Driver Model (WDDM) implementiert ist (in Windows Vista eingeführt), dazu, dass GDI die Informationen nicht erhält, sodass GetDeviceCaps die Informationen immer berechnen muss.
 

Beispiele

Ein Beispiel finden Sie unter Vorbereiten des Druckens.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wingdi.h (einschließlich Windows.h)
Bibliothek Gdi32.lib
DLL Gdi32.dll

Weitere Informationen

CreateEnhMetaFile

CreateIC

Gerätekontextfunktionen

Übersicht über Gerätekontexte

DeviceCapabilities

GetDIBits

GetObjectType

SetDIBits

SetDIBitsToDevice

StretchBlt

StretchDIBits