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

Diese Funktion zeichnet Bitmaps, Icons oder Text mit verschiedenen Statuseigenschaften.

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

Deklaration:

Declare Function DrawState Lib "user32" _
  Alias "DrawStateA" ( _
  ByVal hDC As Long, _
  ByVal hBrush As Long, _
  ByVal lpDrawStateProc As Long, _
  ByVal lData As Any, _
  ByVal wData As Long, _
  ByVal x As Long, _
  ByVal y As Long, _
  ByVal cx As Long, _
  ByVal cy As Long, _
  ByVal flags As Long) As Long

Beschreibung:
Diese Funktion zeichnet Bitmaps, Icons oder Text mit verschiedenen Statuseigenschaften.

Parameter:
hDCErwartet den Devicekontext des Gerätes, auf dem das Objekt ausgegeben werden soll.
hBrushErwartet das Handle eines Brushs, der zumZeichnen des Bitmaps benutzt wird, wenn die "DSS_MONO"-Konstante gesetzt ist.
lpDrawStateProcErwartet die Adresse einer Callback-Funktion, wenn die Konstante "DST_COMPLEX" gesetzt ist. Ist die "DST_TEXT"-Konstante gesetzt, so kann hieroptional die Adresse der Callback-Funktion übergeben werden. Andernfalls wird dieser Parameterignoriert.
lDataErwartet das Handle des Quellicons, -bitmaps oder den Textstring, der gezeichnet werden soll.
wDataErwartet Parameter für die Callback-Funktion, falls die "DST_COMPLEX"-Konstante gesetzt ist.
xErwartet die horizontale Position in Geräteschritten (meist Pixel), an der das Objekt ausgegeben werden soll.
yErwartet die vertikale Position in Geräteschritten (meist Pixel), an der das Objekt ausgegeben werden soll.
cxErwartet die Breite, in der das Ziel gezeichnet werden soll. Dieser Parameter wird unbedingt benötigt, wenn die "DST_COMPLEX"-Konstante gesetzt ist. Alternativ kann hier derWert "0" übergeben werden, wenn die Breite des Quellobjektes verwendet werden soll.
cyErwartet die Höhe, in der das Ziel gezeichnet werden soll. Dieser Parameter wird unbedingt benötigt, wenn die "DST_COMPLEX"-Konstante gesetzt ist. Alternativ kann hier derWert "0" übergeben werden, wenn die Höhe des Quellobjektes verwendet werden sollen.
flagsErwartet eine oder eine Kombination aus mehreren der "DST_"- und "DSS_"-Konstanten. Die "DST"-Konstanten legen das zu zeichnende Objekt fest und die "DSS"-Konstanten den Status des Objektes, das gezeichnet werden soll.

flags Konstanten:

Const DST_COMPLEX = &H0
' Die Quelle ist ein Komplexes Bitmap; um dieses Bild zu zeichnen wird die  
Callback-Funktion benötigt
 
Const DST_PREFIXTEXT = &H2
' Die Quelle ist Text, in dem &-Zeichen für den Unterstrich des nachstehenden Zeichens dienen
 
Const DST_TEXT = &H1
' Die Quelle ist Text
 
Const DST_ICON = &H3
' Die Quelle ist ein Icon
 
Const DST_BITMAP = &H4
' Die Quelle ist ein Bitmap
 
Const DSS_PREFIXONLY = &H400
' (Windows 2000, XP) Zeichnet nur den Unterstrich des Quelltextes
 
Const DSS_HIDEPREFIX = &H200
' (Windows 2000, XP) Zeichnet den Text ohne Beachtung des Präfix (Unterstrichsymbol &)
 
Const DSS_NORMAL = &H0
' Zeichnet das Bitmap normal
 
Const DSS_UNION = &H10
' Zeichnet das Bitmap mit Hilfe von Dithering (Muster)
 
Const DSS_DISABLED = &H20
' Zeichnet das Bitmap wie ein deaktiviertes Objekt
 
Const DSS_MONO = &H80
' Zeichnet das Bitmap schwarzweiß
 
Const DSS_RIGHT = &H8000
' Richtet den Text rechts aus

Rückgabewert:
Ist die Funktion erfolgreich, so ist die Rückgabe ein Wert "ungleich 0", andernfalls wird derWert "0" zurückgegeben. Unter Windows NT, 2000 und XP können Sie die GetLastError-Funktion für erweiterte Fehlerinformationen aufrufen.

Beispiel:

Private Declare Function DrawState Lib "user32" _
  Alias "DrawStateA" ( _
  ByVal hDC As Long, _
  ByVal hBrush As Long, _
  ByVal lpDrawStateProc As Long, _
  ByVal lData As Any, _
  ByVal wData As Long, _
  ByVal x As Long, _
  ByVal y As Long, _
  ByVal cx As Long, _
  ByVal cy As Long, _
  ByVal flags As Long) As Long
 
' DrawState flags-Konstanten
Private Const DST_COMPLEX = &H0 ' Die Quelle ist ein Komplexes Bitmap; um  
' dieses Bild zu zeichnen wird die Callback-Funktion benötigt
Private Const DST_PREFIXTEXT = &H2 ' Die Quelle ist Text in dem &-Zeichen  
' für den Unterstrich des nachstehenden Zeichens dienen
Private Const DST_TEXT = &H1 ' Die Quelle ist Text
Private Const DST_ICON = &H3 ' Die Quelle ist ein Icon
Private Const DST_BITMAP = &H4 ' Die Quelle ist ein Bitmap
Private Const DSS_PREFIXONLY = &H400 ' (Windows 2000, XP) Zeichnet nur den  
' Unterstrich des Quelltextes
Private Const DSS_HIDEPREFIX = &H200 ' (Windows 2000, XP) Zeichnet den Text  
' ohne Beachtung des Präfix (Unterstrichsymbol &)
Private Const DSS_NORMAL = &H0 ' Zeichnet das Bitmap normal
Private Const DSS_UNION = &H10 ' Zeichnet das Bitmap mit Hilfe von Dithering (Muster) 
Private Const DSS_DISABLED = &H20 ' Zeichnet das Bitmap wie ein deaktiviertes Objekt
Private Const DSS_MONO = &H80 ' Zeichnet das Bitmap schwarzweiß
Private Const DSS_RIGHT = &H8000 ' Richtet den Text rechts aus
' Combobox mit möglichen Aktionen füllen
Private Sub Form_Load()
 
  Combo1.AddItem "DSS_PREFIXONLY", 0
  Combo1.ItemData(0) = &H400
  Combo1.AddItem "DSS_HIDEPREFIX", 1
  Combo1.ItemData(1) = &H200
  Combo1.AddItem "DSS_NORMAL", 2
  Combo1.ItemData(2) = &H0
  Combo1.AddItem "DSS_UNION", 3
  Combo1.ItemData(3) = &H10
  Combo1.AddItem "DSS_DISABLED", 4
  Combo1.ItemData(4) = &H20
  Combo1.AddItem "DSS_MONO", 5
  Combo1.ItemData(5) = &H80
  Combo1.AddItem "DST_TEXT", 6
  Combo1.ItemData(6) = &H1
  Combo1.ListIndex = 0
 
  Picture1.Picture = LoadPicture(App.Path & "\Beispiel.jpg")
End Sub
Private Sub Command1_Click()
  Dim Tmpstr As String
  Tmpstr = "www.&vbapihelpline.de"
 
  Picture2.Cls
  Select Case Combo1.ItemData(Combo1.ListIndex)
  Case DSS_PREFIXONLY, DSS_HIDEPREFIX
    DrawState Picture2.hDC, 0, 0, Tmpstr, Len(Tmpstr), 0, 0,  _
    Picture1.ScaleWidth, Picture1.ScaleHeight, DST_PREFIXTEXT Or Combo1.ItemData(Combo1.ListIndex) 
 
  Case DST_TEXT
    DrawState Picture2.hDC, 0, 0, Tmpstr, Len(Tmpstr), 0, 0,  _
    Picture1.ScaleWidth, Picture1.ScaleHeight, DST_TEXT
 
  Case Else
    DrawState Picture2.hDC, 0, 0, CLng(Picture1.Picture), 0, 0, 0, 0,  _
    0, DST_BITMAP Or Combo1.ItemData(Combo1.ListIndex)
  End Select
  Picture2.Refresh
End Sub

Diese Seite wurde bereits 7.875 mal aufgerufen.

nach obenzurück
 
   

Druckansicht Druckansicht Copyright ©2000-2024 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