Rubrik: Grafik & Zeichnen | 22.03.05 |
DrawState-Funktion Diese Funktion zeichnet Bitmaps, Icons oder Text mit verschiedenen Statuseigenschaften. | ||
Betriebssystem: Win95, Win98, WinNT 3.1, Win2000, WinME | Views: 7.895 |
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:
hDC | Erwartet den Devicekontext des Gerätes, auf dem das Objekt ausgegeben werden soll. |
hBrush | Erwartet das Handle eines Brushs, der zumZeichnen des Bitmaps benutzt wird, wenn die "DSS_MONO"-Konstante gesetzt ist. |
lpDrawStateProc | Erwartet 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. |
lData | Erwartet das Handle des Quellicons, -bitmaps oder den Textstring, der gezeichnet werden soll. |
wData | Erwartet Parameter für die Callback-Funktion, falls die "DST_COMPLEX"-Konstante gesetzt ist. |
x | Erwartet die horizontale Position in Geräteschritten (meist Pixel), an der das Objekt ausgegeben werden soll. |
y | Erwartet die vertikale Position in Geräteschritten (meist Pixel), an der das Objekt ausgegeben werden soll. |
cx | Erwartet 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. |
cy | Erwartet 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. |
flags | Erwartet 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