vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 12 bzw. 19 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2015
 
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:  4.046 

Summer-Special bei Tools & Components!
Gute Laune Sommer bei Tools & Components
Top Summer-Special - Sparen Sie teilweise über 100,- EUR
Alle sev-Entwicklerkomponenten und Komplettpakete jetzt bis zu 25% reduziert!
zum Beispiel:
  • Developer CD nur 455,- EUR statt 569,- EUR
  • sevDTA 2.0 nur 224,30 EUR statt 299,- EUR
  •  
  • vb@rchiv   Vol.6 nur 18,70 EUR statt 24,95 EUR
  • sevCoolbar 3.0 nur 58,70 EUR statt 69,- EUR
  • - Werbung -Und viele weitere Angebote           Aktionspreise nur für kurze Zeit gültig

    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 4.046 mal aufgerufen.

    nach obenzurück
     
       

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