vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2021
 
zurück
Rubrik: Sonstiges22.03.05
CreateDC-Funktion

Diese Funktion erstellt einen Devicekontext eines Gerätes wie des Druckers oder der Grafikkarte.

Betriebssystem:  Win95, Win98, WinNT 3.1, Win2000, WinMEViews:  12.796 

Deklaration:

Declare Function CreateDC Lib "gdi32.dll" _
  Alias "CreateDCA" ( _
  ByVal lpszDriver As String, _
  ByVal lpszDevice As String, _
  ByVal lpszOutput As Long, _
   lpInitData As Any) As Long

Beschreibung:
Diese Funktion erstellt einen Devicekontext eines Gerätes wie des Druckers oder derGrafikkarte.

Parameter:
lpszDriverErwartet den Namen des Gerätetreibers, für dessen Gerät ein Devicekontext erstellt werden soll. Hier kannz.B. "DISPLAY" für eine Grafikkarte oder der Treiber eines Druckers angegeben werden.
lpszDeviceErwartet den Namen des Gerätes. Hier kannz.B. für die Standardgrafikkarte ein leerer String übergeben werden wenn bei "lpszDriver" der String "DISPLAY" übergeben wurde, oder der Name eines Druckers falls bei "lpszDriver" ein Druckertreiber übergeben wurde.
lpszOutputReserviert, setzen sie diese Option auf denWert "0".
lpInitDataErwartet eine DEVMODE-Struktur die mit Initialisierungsdaten gefüllt ist, um das Gerät imVoraus einzustellen. Alternativ kann hier auch der Wert "0" übergeben werden.

Rückgabewert:
Ist die Funktion erfolgreich, so liefert sie einen "Devicehandle" zu dem neuerstellten Devicekontext, andernfalls wird der Wert "0" zurückgegeben. Unter Windows NT/2000 könnenSie die GetLastError-Funktion für erweiterteFehlerinformationen aufrufen.

Beispiel:

Private Declare Function CreateDC Lib "gdi32.dll" _
  Alias "CreateDCA" ( _
  ByVal lpszDriver As String, _
  ByVal lpszDevice As String, _
  ByVal lpszOutput As Long, _
   lpInitData As Any) As Long
Private Declare Function GetDeviceCaps Lib "gdi32" ( _
  ByVal hdc As Long, _
   ByVal nIndex As Long) As Long
Private Declare Function DeleteDC Lib "gdi32.dll" (ByVal hdc As Long) As Long 
 
' CreateDC nIndex - Konstanten
Private Const DRIVERVERSION = 0 ' Treiberversion
Private Const HORZSIZE = 4 ' Horizontale Breite in Millimeter
Private Const VERTSIZE = 6 ' Vertikale Höhe in Millimeter
Private Const HORZRES = 8 ' Horizontale Breite in Pixel
Private Const VERTRES = 10 ' Vertikale Höhe in Pixel
Private Const BITSPIXEL = 12 ' Anzahl der Bits pro Pixel
Private Const PLANES = 14 ' Anzahl der Planes
Private Const NUMBRUSHES = 16 ' Anzahl der Brushes die das Device besitzt
Private Const NUMPENS = 18 ' Anzahl der Pens die das Device besitzt
Private Const NUMFONTS = 22 ' Anzahl der Fonts die das Device besitzt
Private Const NUMCOLORS = 24 ' Anzahl der Farben die das Device unterstützt
Private Const ASPECTX = 40 ' Relative Länge fürs Zeichnen von Linien
Private Const ASPECTY = 42 ' Relative Höhe fürs Zeichnen von Linien
Private Const CLIPCAPS = 36 ' Unterstützung von Clipping, der Rückgabewert  
' ist 1 wenn Clipping unterstützt wird, ansonsten 0
Private Const SIZEPALETTE = 104 ' Anzahl der Einträge in der Palette
Private Const NUMRESERVED = 106 ' Anzahl der Reservierten Einträge in der Palette 
Private Const COLORRES = 108 ' Aktuelle Farbauflösung
Private Const PHYSICALWIDTH = 110 ' Physische Breite in der Devicemaßeinheit
Private Const PHYSICALHEIGHT = 111 ' Physische Höhe in der Devicemaßeinheit 
Private Const PHYSICALOFFSETX = 112 ' Physischer druckbarer Bereich - X Rand
Private Const PHYSICALOFFSETY = 113 ' Physischer druckbarer Bereich - Y Rand
Private Const VREFRESH = 116 ' (Win NT) Vertikale Refreshrate, ist der  
' Rückgabewert 0 oder 1 so ist die Refreshrate der Standardwert
Private Const DESKTOPHORZRES = 118 ' (Win NT) Breite des Desktops, dieser  
' Wert kann auf Grund von mehreren Monitoren breiter sein als HORZRES
Private Const DESKTOPVERTRES = 117 ' (Win NT) Höhe des Desktops, dieser Wert  
' kann auf Grund von mehreren Monitoren breiter sein als VERTRES
Private Const BLTALIGNMENT = 119 ' (Win NT) Die beste Pixelauflösung für  
' einen Blittingvorgang, ist der Rückagebewert 0 so ist die Hardware  
' beschleunigt und jede Pixelauflösung ist optimal
Private Const TECHNOLOGY = 2 ' Gibt eine TECHNOLOGY-Konstante zurück, die das  
' Gerät beschreibt
Private Const RASTERCAPS = 38 ' Gibt eine / mehrere RASTERCAPS-Konstante(n)  
' zurück, die Eigenschaften des Gerätes beschreiben
Private Const CURVECAPS = 28 ' Gibt eine / mehrere CURVECAPS-Konstante(n)  
' zurück, die Eigenschaften über das Zeichnen von Kurven beschreiben
Private Const LINECAPS = 30 ' Gibt eine / mehrere LINECAPS-Konstante(n) zurück  
' die Eigenschaften über das Zeichnen von Linien beschreiben
 
' CreateDC Rückgabe-Konstanten
Private Const DT_PLOTTER = 0 ' (TECHNOLOGY) Raster Plotter
Private Const DT_RASDISPLAY = 1 ' (TECHNOLOGY) Raster Anzeige
Private Const DT_RASPRINTER = 2 ' (TECHNOLOGY) Raster Drucker
Private Const DT_RASCAMERA = 3 ' (TECHNOLOGY) Raster Kamera
Private Const DT_METAFILE = 5 ' (TECHNOLOGY) Meta Datei
Private Const DT_DISPFILE = 6 ' (TECHNOLOGY) Anzeige Datei
Private Const RC_BANDING = 2 ' (RASTERCAPS)  Device requires banding support 
Private Const RC_BITBLT = 1 ' (RASTERCAPS) Standard blitten möglich
Private Const RC_BITMAP64 = 8 ' (RASTERCAPS) Das Gerät unterstützt 64-Bit Bitmaps 
Private Const RC_DIBTODEV = &H200 ' (RASTERCAPS) Das Gerät unterstützt DIBitsToDevice 
Private Const RC_FLOODFILL = &H1000 ' (RASTERCAPS) Das Gerät unterstützt FloodFill 
Private Const RC_GDI20_OUTPUT = &H10 ' (RASTERCAPS) Das Gerät hat einen 2.0  Ausgang Aufruf
Private Const RC_PALETTE = &H100 ' (RASTERCAPS) Das Gerät unterstützt Paletten 
Private Const RC_SCALING = 4 ' (RASTERCAPS) Das Gerät benötigt eine Skalierungsunterstützung
Private Const RC_STRETCHBLT = &H800 ' (RASTERCAPS) Das Gerät unterstützt das Blitten & Stretchen von Bitmaps
Private Const RC_STRETCHDIB = &H2000 ' (RASTERCAPS) Das Gerät unterstützt das Stretchen von DIB-Bitmaps
Private Const CC_NONE = 0 ' (CURVECAPS) Kurven werden nicht unterstützt
Private Const CC_CIRCLES = 1 ' (CURVECAPS) Kreise werden unterstützt
Private Const CC_PIE = 2 ' (CURVECAPS) Kreisausschnitte werden unterstützt
Private Const CC_CHORD = 4 ' (CURVECAPS) Chords werden unterstützt
Private Const CC_ELLIPSES = 8 ' (CURVECAPS) Ellipsen werden unterstützt
Private Const CC_WIDE = 16 ' (CURVECAPS) Weite Linien werden unterstützt
Private Const CC_STYLED = 32 ' (CURVECAPS) Stylische Linien werden unterstützt 
Private Const CC_WIDESTYLED = 64 ' (CURVECAPS) Weite stylische Linien  werden unterstützt
Private Const CC_INTERIORS = 128 ' (CURVECAPS) Innere Linien werden unterstützt 
Private Const CC_ROUNDRECT = 256 ' (CURVECAPS) Abgerundete Rechtecke werden unterstützt 
Private Const LC_NONE = 0 ' (LINECAPS) Linien werden nicht unterstützt
Private Const LC_POLYLINE = 2 ' (LINECAPS) Polylinien werden unterstützt
Private Const LC_MARKER = 4 ' (LINECAPS) Marker werden unterstützt
Private Const LC_POLYMARKER = 8 ' (LINECAPS) Polymarker werden unterstützt
Private Const LC_WIDE = 16 ' (LINECAPS) Weite Linien werden unterstützt
Private Const LC_STYLED = 32 ' (LINECAPS) Stylische Linien werden unterstützt
Private Const LC_WIDESTYLED = 64 ' (LINECAPS) Weite stylische Linien werden unterstützt 
Private Const LC_INTERIORS = 128 ' (LINECAPS) Innere Linien werden unterstützt
' Devicekontext der Grafikkarte anlegen und Informationen ausgeben
Private Sub Command1_Click()
  Dim hdc As Long, Retval As Long
 
    ' Device Kontext erstellen
  hdc = CreateDC("DISPLAY", vbNullChar, 0&, ByVal 0&)
  If hdc = 0 Then
    MsgBox "Es konnte kein Devicekontext erstellt werden."
    Exit Sub
  End If
 
  ' Informationen auswerten
  Select Case True
  Case CBool(GetDeviceCaps(hdc, TECHNOLOGY) And DT_RASDISPLAY)
    Debug.Print "Das Gerät ist ein Anzeige Gerät"
  Case CBool(GetDeviceCaps(hdc, TECHNOLOGY) And DT_RASPRINTER)
    Debug.Print "Das Gerät ist ein Drucker"
  Case CBool(GetDeviceCaps(hdc, TECHNOLOGY) And DT_PLOTTER)
    Debug.Print "Das Gerät ist ein Plotter"
  Case CBool(GetDeviceCaps(hdc, TECHNOLOGY) And DT_RASCAMERA)
    Debug.Print "Das Gerät ist ein Kamera"
  End Select
 
  Debug.Print "Horizontale Auflösung: " & GetDeviceCaps(hdc, HORZRES)
  Debug.Print "Vertikale Auflösung: " & GetDeviceCaps(hdc, VERTRES)
  Debug.Print "Anzahl der Farben: " & GetDeviceCaps(hdc, BITSPIXEL) & "-Bit" 
 
  ' Device Kontext zerstören
  DeleteDC hdc
End Sub

Diese Seite wurde bereits 12.796 mal aufgerufen.

nach obenzurück
 
   

Druckansicht Druckansicht Copyright ©2000-2021 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel