Иконки

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Иконки

Сообщение klop086 » 25.09.2004 (Сб) 13:24

Я тут Api Guide полистал и нашёл функцию, которая возвращает в программу иконку (значок) любого файла - ExtractAssociatedIcon . Собственно речь идёт о примере на эту функцию. Там значок рисуется примо на форме. Как бы сделать так, что бы этот значок рисовался в Image?
Сначала подумай, потом помолчи.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.09.2004 (Сб) 13:41

Код: Выделить всё
Option Explicit

Private Declare Function ExtractAssociatedIcon Lib "shell32" Alias "ExtractAssociatedIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long
Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long

Private Type Guid
    Data1 As Long
    Data2 As Integer
    Data3 As Integer
    Data4(0 To 7) As Byte
End Type
Private Type PICTDESC
    Size As Long
    Type As Long
    hBmp As Long
    hPal As Long
    reserved As Long
End Type
Private Declare Function OleCreatePictureIndirect Lib "olepro32" (lpPictDesc As PICTDESC, riid As Guid, ByVal fOwn As Long, lplpvObj As IPicture) As Long

Sub Form_Load()
    Dim mIcon As Long
    'Extract the associated icon
    mIcon = ExtractAssociatedIcon(App.hInstance, "C:\Autoexec.bat", 2)
    'Set the icon to Image1
    Set Image1.Picture = CreatePictureFromIcon(mIcon)
    'remove the icon from the memory
    DestroyIcon mIcon
End Sub

Private Function CreatePictureFromIcon(ByVal hIcon As Long) As StdPicture
Dim Pic As PICTDESC, IID_IDispatch As Guid
    With IID_IDispatch
       .Data1 = &H20400
       .Data4(0) = &HC0
       .Data4(7) = &H46
    End With
    With Pic
       .Size = Len(Pic)
       .Type = vbPicTypeIcon
       .hBmp = hIcon
       .hPal = 0
    End With
    OleCreatePictureIndirect Pic, IID_IDispatch, 1, CreatePictureFromIcon
End Function
Изображение

all
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 01.06.2004 (Вт) 18:48

Сообщение all » 27.09.2004 (Пн) 13:13

А ктонибудь знает как его сохранить на диск
чтобы ее фон остовался прозрачным?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 27.09.2004 (Пн) 22:20

all писал(а):А ктонибудь знает как его сохранить на диск
чтобы ее фон остовался прозрачным?
http://vbrussian.com/Examples.asp?ID=99
http://vbrussian.com/Examples.asp?ID=68
Изображение

all
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 01.06.2004 (Вт) 18:48

Сообщение all » 04.10.2004 (Пн) 11:45

tyomitch
Спасибо!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 5

    TopList