/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
System ikoner
Fra : Lasse Eskildsen


Dato : 03-06-03 20:46

Hej
Jeg vil gerne bruge en listview til at vise nogle filer. Jeg har også fået
tilføjet filerne, men er det muligt at finde ud af hvilket ikon der hører
til filen, og så vise den i listview'en, ligesom når man gør det med en
imagelist?

Håber der er nogen der kan hjælpe

--
Lasse



 
 
Johnny E Jensen (03-06-2003)
Kommentar
Fra : Johnny E Jensen


Dato : 03-06-03 21:10

Hej Lasse
Jeg fandt engang denne rutine. Placer nedenstående i et module, og du kan nu
extracte ikonet filen benytter.
Rutinen skal nok tilpasses så den kan add image til et ImageList - så du
vise den i din listview.

/johnny
>
Option Explicit

Private Const SHGFI_DISPLAYNAME = &H200
Private Const SHGFI_ICON = &H100
Private Const SHGFI_SYSICONINDEX = &H4000 ' get system icon index
Private Const SHGFI_LARGEICON = &H0 ' get large icon
Private Const SHGFI_SMALLICON = &H1 ' get small icon
Private Const ILD_TRANSPARENT = &H1
Public Const MAX_PATH = 260
Private Type SHFILEINFO 'Structure used by SHGetFileInfo
hIcon As Long
iIcon As Long
dwAttributes As Long
szDisplayName As String * MAX_PATH
szTypeName As String * 80
End Type
Private Declare Function ImageList_Draw Lib "comctl32.dll" (ByVal himl&,
ByVal i&, ByVal hDCDest&, ByVal x&, ByVal y&, ByVal flags&) As Long
Private Declare Function SHGetFileInfo Lib "shell32.dll" Alias
"SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long,
psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long

Public Function ExtractIcon(picImage As PictureBox, sFile As String)
Dim himl As Long
Dim lpzxExeName As String
Dim lRet As Long
Dim sWinPath As String
Dim shinfo As SHFILEINFO

lpzxExeName = sFile
himl = SHGetFileInfo(lpzxExeName, 0&, shinfo, Len(shinfo),
SHGFI_SYSICONINDEX Or SHGFI_SMALLICON)
If himl <> 0 Then
picImage.AutoRedraw = True
lRet = ImageList_Draw(himl, shinfo.iIcon, picImage.hDC, 0, 0,
ILD_TRANSPARENT)
picImage.Refresh
ExtractIcon = True
End If
End Function




Lasse Eskildsen (03-06-2003)
Kommentar
Fra : Lasse Eskildsen


Dato : 03-06-03 22:13

Mange tak for hjælpen, det fungerede perfekt efter lidt modificering!

--
Lasse

"Johnny E Jensen" <emde@emde123456.dk> skrev i en meddelelse
news:3edd00b4$0$48909$edfadb0f@dtext02.news.tele.dk...
> Hej Lasse
> Jeg fandt engang denne rutine. Placer nedenstående i et module, og du kan
nu
> extracte ikonet filen benytter.
> Rutinen skal nok tilpasses så den kan add image til et ImageList - så du
> vise den i din listview.
>
> /johnny
> >
> Option Explicit
>
> Private Const SHGFI_DISPLAYNAME = &H200
> Private Const SHGFI_ICON = &H100
> Private Const SHGFI_SYSICONINDEX = &H4000 ' get system icon index
> Private Const SHGFI_LARGEICON = &H0 ' get large icon
> Private Const SHGFI_SMALLICON = &H1 ' get small icon
> Private Const ILD_TRANSPARENT = &H1
> Public Const MAX_PATH = 260
> Private Type SHFILEINFO 'Structure used by SHGetFileInfo
> hIcon As Long
> iIcon As Long
> dwAttributes As Long
> szDisplayName As String * MAX_PATH
> szTypeName As String * 80
> End Type
> Private Declare Function ImageList_Draw Lib "comctl32.dll" (ByVal himl&,
> ByVal i&, ByVal hDCDest&, ByVal x&, ByVal y&, ByVal flags&) As Long
> Private Declare Function SHGetFileInfo Lib "shell32.dll" Alias
> "SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long,
> psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As
Long
>
> Public Function ExtractIcon(picImage As PictureBox, sFile As String)
> Dim himl As Long
> Dim lpzxExeName As String
> Dim lRet As Long
> Dim sWinPath As String
> Dim shinfo As SHFILEINFO
>
> lpzxExeName = sFile
> himl = SHGetFileInfo(lpzxExeName, 0&, shinfo, Len(shinfo),
> SHGFI_SYSICONINDEX Or SHGFI_SMALLICON)
> If himl <> 0 Then
> picImage.AutoRedraw = True
> lRet = ImageList_Draw(himl, shinfo.iIcon, picImage.hDC, 0, 0,
> ILD_TRANSPARENT)
> picImage.Refresh
> ExtractIcon = True
> End If
> End Function
>
>
>



Ole Nielsby (03-06-2003)
Kommentar
Fra : Ole Nielsby


Dato : 03-06-03 21:15


Lasse Eskildsen <Leskil@webspeed.dk> skrev:
> Hej
> Jeg vil gerne bruge en listview til at vise nogle filer. Jeg har også fået
> tilføjet filerne, men er det muligt at finde ud af hvilket ikon der hører
> til filen, og så vise den i listview'en, ligesom når man gør det med en
> imagelist?

Prøv evt. at kigge på Win32-funktionen SHGetFileInfo. Jeg har ikke
prøvet at bruge den fra VB, men det burde være muligt.

ON/Fjern sneglen fra min svaradresse


Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408878
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste