Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Ikony plików w kontrolce ListView
koala



Typ: neutral
Postów: 9
Zarejestrowany: Nov 2003
Ikony plików w kontrolce ListView

Dodaje do kontrolki ListView lub TreeView liste plików i katalogów. Jak przypisać każdej pozycji na liście ikonę systemową?

09-11-2003 18:48
Pokaż profil koala  Wyślij email do koala        1333014
Chudy
[TLHW]Wiktor



Typ: moderator
Postów: 574
Zarejestrowany: Aug 2002

Poczytaj w API-Guide o funkcji "ExtractAssociatedIcon".


_____________________________________________
Projekt "Thunder Cannons" nadchodzi...

09-11-2003 19:02
Pokaż profil Chudy  Wyślij email do Chudy   Odwiedź stronę Chudy       1220895
koala



Typ: neutral
Postów: 9
Zarejestrowany: Nov 2003

Dięki ale tam pisze jak rysować ikonę w obiekcie który posiada hDC a jak narysować ikonę w ListItem jak on nie ma ani hWnd ani hDC

15-11-2003 21:30
Pokaż profil koala  Wyślij email do koala        1333014
Chudy
[TLHW]Wiktor



Typ: moderator
Postów: 574
Zarejestrowany: Aug 2002

Pokaże ci to na przykładownym kodzie. Najpierw wstaw 3 kontrolki. Pierwsza to ListView druga ImageList i trzecia to PictureBox. Następnie wklej ten kod do kodu Formy:
Const DI_MASK = &H1
Const DI_IMAGE = &H2
Const DI_NORMAL = DI_MASK Or DI_IMAGE
Private Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociatedIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long
Private Declare Function DrawIconEx Lib "user32" (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" (ByVal hIcon As Long) As Long
Private Sub Form_Load()
Picture1.BackColor = ListView1.BackColor
Picture1.BorderStyle = 0
Picture1.Width = 32 * Screen.TwipsPerPixelX
Picture1.Height = 32 * Screen.TwipsPerPixelY

Picture1.AutoRedraw = True
Dim mIcon As Long

mIcon = ExtractAssociatedIcon(App.hInstance, "C:\Autoexec.bat", 2)
DrawIconEx Picture1.hdc, 0, 0, mIcon, 0, 0, 0, 0, DI_NORMAL
DestroyIcon mIcon
ImageList1.ListImages.Add , , Picture1.Image

Picture1.Cls
mIcon = ExtractAssociatedIcon(App.hInstance, "C:\Windows\Win.ini", 2)
DrawIconEx Picture1.hdc, 0, 0, mIcon, 0, 0, 0, 0, DI_NORMAL
DestroyIcon mIcon
ImageList1.ListImages.Add , , Picture1.Image


Set ListView1.Icons = ImageList1.Object
ListView1.ListItems.Add , , "Autoexec.bat", 1
ListView1.ListItems.Add , , "Win.ini", 2
End Sub


_____________________________________________
Projekt "Thunder Cannons" nadchodzi...

16-11-2003 10:20
Pokaż profil Chudy  Wyślij email do Chudy   Odwiedź stronę Chudy       1220895
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Temat może nieaktualny ale można to zrobi bez użycia PictureBox'a i ImageList.

Jeśli jesteś ciekawy jak to daj znać.

Pozdrawiam


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

17-10-2004 19:48
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
Wszystkich odpowiedzi: 4 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1