vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Grafik & Zeichnen15.11.01
DrawIconEx-Funktion

Diese Funktion zeichnet ein Icon, Cursor oder einen animierten Cursor auf ein Device-Context, wobei Position, Größe und Frame des animierten Cursors gewählt werden können.

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

Deklaration:

Declare Function DrawIconEx Lib "user32.dll" ( _
  ByVal hdc As Long, _
  ByVal xLeft As Long, _
  ByVal yTop As Long, _
  ByVal hIcon As Long, _
  ByVal cxWidth As Long, _
  ByVal cyWidth As Long, _
  ByVal istepIfAniCur As Long, _
  ByVal hbrFlickerFreeDraw As Long, _
  ByVal diFlags As Long) As Long

Beschreibung:
Diese Funktion zeichnet ein Icon, Cursor oder einen animierten Cursor auf ein Device-Context, wobei Position, Größe und Frame des animierten Cursors gewählt werden können. Auf Wunsch kann die Funktion die Position, an der das Icon gezeichnet werden soll, bereits im Vorfeld mit einer bestimmten Farbe füllen.

Parameter:
hdcErwartet den Handle des Device's auf dem das Icon oder der Cursor gezeichnet werden soll.
xLeftAngabe der horizontale Position (x-Koordinate) in Pixel, an der das Icon gezeichnet werden soll.
yTopAngabe der vertikalen Position (y-Koordinate) in Pixel, an der das Icon gezeichnet werden soll.
hIconHandle des zu zeichnenden Icons oder Cursors
cxWidthBreite des zu zeichnenden Elements (ggf. wird das Icon gedehnt oder gestaucht)
cyWidthHöhe des zu zeichnenden Elements (ggf. wird das Icon gedehnt oder gestaucht)
istepIfAniCursorIndex des Frames, der angezeigt werden soll, wenn es sich um einen animierter Cursor handelt
hbrFlickerFreeDrawHandle zu einen Brush, welcher benutzt werden soll, um den Hintergrund des Icons auszufüllen. Wird hier eine "0" übergeben, so wird kein Hintergrund gezeichnet.
diFlagsEine oder eine Kombination aus mehreren der "diFlags"-Konstanten.

diFlags Konstanten:

' Das Icon wird unter Verwendung des vom System definierten
' Bildes gezeichnet, nicht mit dem vom Anwender vorgegebenen Bild
Const DI_COMPAT = &H4
 
' Zeichnet das Icon in seiner Originalgröße
' (cxWidth und cyWidth werden ignoriert)
Const DI_DEFAULTSIZE = &H8
 
' Zeichnet nur die Bilddaten des Icons/Cursors
Const DI_IMAGE = &H2
 
' Zeichnet nur die Maske des Icons/Cursors
Const DI_MASK = &H1
 
' Zeichnet Maske und Bilddaten
Const DI_NORMAL = &H3

Rückgabewert:
War der Funktionsaufruf erfolgreich, ist der Rückgabewert "ungleich 0", andernfalls wird "0" zurückgegeben. Für erweiterte Fehlerinformationen können Sie die GetLastError-Funktion aufrufen.


Beispiel:

Private Declare Function ExtractIconEx Lib "shell32.dll" _
  Alias "ExtractIconExA" ( _
  ByVal lpszFile As String, _
  ByVal nIconIndex As Long, _
  phiconLarge As Long, _
  phiconSmall As Long, _
  ByVal nIcons As Long) As Long
 
Private Declare Function DrawIconEx Lib "user32.dll" ( _
  ByVal hDC As Long, _
  ByVal xLeft As Long, _
  ByVal yTop As Long, _
  ByVal hIcon As Long, _
  ByVal cxWidth As Long, _
  ByVal cyWidth As Long, _
  ByVal istepIfAniCur As Long, _
  ByVal hbrFlickerFreeDraw As Long, _
  ByVal diFlags As Long) As Long
 
Private Declare Function DestroyIcon Lib "user32.dll" ( _
  ByVal hIcon As Long) As Long
 
' Das Icon wird unter Verwendung des vom System definierten
' Bildes gezeichnet, nicht mit dem vom Anwender vorgegebenen Bild
Private Const DI_COMPAT = &H4
 
' Zeichnet das Icon in seiner Originalgröße
' (cxWidth und cyWidth werden ignoriert)
Private Const DI_DEFAULTSIZE = &H8
 
' Zeichnet nur die Bilddaten des Icons/Cursors
Private Const DI_IMAGE = &H2
 
' Zeichnet nur die Maske des Icons/Cursors
Private Const DI_MASK = &H1
 
' Zeichnet Maske und Bilddaten
Private Const DI_NORMAL = &H3
 
Private hSmallIcons() As Long
Private hLargeIcons() As Long
Private Sub Form_Load()
  Dim RetVal As Long
  Dim IconNum As Long
 
  ' Anzahl Icons in der Datei ermitteln
  IconNum = ExtractIconEx("c:\windows\system\pifmgr.dll", -1, 0&, 0&, 0&)
  If IconNum = 0 Then
    MsgBox "Diese Datei hat keine Icons"
    Exit Sub
  End If
 
  ' Scrollbalken einrichten
  HScroll1.Max = IconNum - 1
 
  ' Alle Icons der Datei im Array speichern
  ReDim hSmallIcons(IconNum - 1)
  ReDim hLargeIcons(IconNum - 1)
  RetVal = ExtractIconEx("c:\windows\system\pifmgr.dll", 0&, _
    hLargeIcons(0), hSmallIcons(0), IconNum)
End Sub
' Beim Scrollen, die Icons auf die Form zeichnen
Private Sub HScroll1_Change()
  Me.Cls
  RetVal = DrawIconEx(Me.hDC, 5, 5, hLargeIcons(HScroll1.Value), _
    0&, 0&, 0&, 0&, DI_NORMAL) 
  DrawIconEx Me.hDC, 5, 40, hSmallIcons(HScroll1.Value), _
    0&, 0&, 0&, 0&, DI_NORMAL 
  Me.Refresh
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  On Error Resume Next
 
  ' Vor dem Beenden, Icons zerstören und
  ' Ressourcen wieder freigeben
  For i = 0 To UBound(hSmallIcons)
    DestroyIcon hSmallIcons(i)
    DestroyIcon hLargeIcons(i)
  Next i
End Sub

Diese Seite wurde bereits 8.598 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