vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: XP Icon Vorschau! 
Autor: AndreasD
Datum: 08.03.06 19:50

Hallo Disaster,

mit der shell32.dll lässt sich das *relativ* einfach realisieren.



Erstelle zunächst ein Modul und kopier folgenden Code hinein:

Public 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
Public 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
Public Declare Function DestroyIcon Lib "user32.dll" (ByVal hIcon As Long) As _
  Long
 
Public Const DI_COMPAT = &H4 ' benutzt das als Standard festgelegte 
' benutzerdefinierte Bild
Public Const DI_DEFAULTSIZE = &H8 ' zeichnet das Icon/Cursor mit der 
' Standardgröße
Public Const DI_IMAGE = &H2 ' zeichnet nur die Bilddaten des Icons/Cursors
Public Const DI_MASK = &H1 ' zeichnet nur die Maske des Icons/Cursors
Public Const DI_NORMAL = &H3 ' zeichnet Maske und Bilddaten
 
Public Icons_Klein() As Long, Icons_Groß() As Long
 
Public Function Symbol_Laden(pPfad As String)
 
  Dim RetVal As Long
  Dim IconNr As Long
 
     ' Anzahl Symbole in der Datei ermitteln
     IconNr = ExtractIconEx(pPfad, -1, 0&, 0&, 0&)
     If IconNr = 0 Then
           Exit Function ' Diese Datei enthält keine Symbole
     End If
 
     ' Alle Symbole der Datei in Arrays speichern
     ReDim Icons_Klein(IconNr - 1)
     ReDim Icons_Groß(IconNr - 1)
     RetVal = ExtractIconEx(pPfad, 0&, Icons_Groß(0), _
     Icons_Klein(0), IconNr)
 
End Function
Mal angenommen wir wollen das Icon "Beispiel-Symbol.ico" im Ordner "C:\Beispiel-Ordner\" als Bild einlesen:

Zunächst erstellen wir auf einer Form eine PictureBox
Name = picVorschau
Autoredraw = True
ScaleMode = 3 - Pixel
und einen CommandButton
Name = cmdVorschau

Nun laden und zeichnen wir das gewünschte Symbol in die PictureBox:
Private Sub cmdVorschau_Click()
        ' Die PictureBox vor dem laden des Symbols "leeren"
        picVorschau.Cls 
 
        ' Jetzt greifen wir auf unsere Function "Symbol_Laden" im Modul zu _
          und geben den Pfad für unser Symbol an.
        Call Symbol_Laden("C:\Beispiel-Ordner\Beispiel-Symbol.ico")
 
        ' Jetzt können wir das geladene Symbol in die PictureBox zeichnen.
        RetVal = DrawIconEx(picVorschau.hDC, 5, 5, Icons_Groß(0), 0&, 0&, 0&, _
                                       0&, DI_NORMAL)
 
         ' Um sicher zu gehen, dass das Icon wirklich angezeigt wird, muss _
          die PictureBox aktualisiert werden.
         picVorschau.Refresh
 
End Sub
Mit Icons_Groß(0) wird das Symbol im Format 32x32 Pixel geladen
Mit Icons_Klein(0) wird das Symbol im Format 16x16 Pixel geladen

Die Zahl in der Klammer hinter z.B. Icons_Groß(0) gibt den Index des Symbols in der Datei an. Bei normalen Symbolen ist dies immer der Index 0.

Manche DLL- und EXE-Dateien beinhalten mehrere Symbole. Auf diese kann man zugreifen, indem man einen höhren Index angibt.
Beispiel: C:\Windows\Explorer.exe

Index Symbol
0 Arbeitsplatz
1 Suchen
2 Drucker
3 Desktop
...

Gruß,

Andreas
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
XP Icon Vorschau!872Disaster08.03.06 15:17
Re: XP Icon Vorschau!576AndreasD08.03.06 19:50
Re: XP Icon Vorschau!509Disaster09.03.06 08:21
Re: XP Icon Vorschau!551AndreasD09.03.06 09:20
Re: XP Icon Vorschau!541Disaster09.03.06 14:22
Re: XP Icon Vorschau!518AndreasD09.03.06 17:43
Re: XP Icon Vorschau!535Disaster10.03.06 07:48
Re: XP Icon Vorschau!573AndreasD10.03.06 08:06
Re: XP Icon Vorschau!546Disaster10.03.06 09:09

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 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