Как использовать в своей проге ресурсы других - конкретнее иконки? - VB

Узнай цену своей работы

Формулировка задачи:

Как использовать в своей проге ресурсы других - конкретнее иконки? Ну ведь винды извлекают для ярлыков иконки из ехе файлов и как сделать что бы прога которая уже готова и умеет создавать в себе ярлыки на другие проги и хранить их в своем окне - как сделать что бы эти ярлыки отображались не моими припасенными значками а иконками из файлов на которые ссылаются - ведь путь то известен. как извлечь этот ресурс?

Решение задачи: «Как использовать в своей проге ресурсы других - конкретнее иконки?»

textual
Листинг программы
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 DrawIcon Lib 'user32' (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
Private Declare Function DestroyIcon Lib 'user32' (ByVal hIcon As Long) As Long
Private Sub Form_Load()
    Me.ScaleMode = vbPixels
    Me.BackColor = &HFF0000
    Me.Width = (32 * 15 + 10) * Screen.TwipsPerPixelX
    Me.Height = (32 * 10 + 10) * Screen.TwipsPerPixelY
    Me.Top = Screen.Height / 2 - Me.Height / 2
    Me.Left = Screen.Width / 2 - Me.Width / 2
    Me.Caption = 'Èêîíêè, èçâëå÷¸ííûå èç SHELL32.DLL'
End Sub
Private Sub Form_Paint()
    Dim mIcon As Long, Cnt As Long
    Me.Cls
    For j = 0 To Me.ScaleHeight / 32
    For Cnt = 0 To Me.ScaleWidth / 32 - 1
        ExtractIconEx 'shell32.dll', Cnt + Int(j * Me.ScaleWidth / 32), mIcon, ByVal 0&, 1
        DrawIcon Me.hdc, 32 * Cnt, Me.CurrentY, mIcon
        DestroyIcon mIcon
    Next Cnt
    Me.CurrentY = Me.CurrentY + 32
    Next j
End Sub
Private Sub Form_Resize()
    Form_Paint
End Sub
 
'Удачи!
'easy

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.7 из 5
Похожие ответы