структура ICO

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

структура ICO

Сообщение Naked » 09.07.2006 (Вс) 11:17

пытаюсь разобраться с форматом ICO, застрял на одном месте, непойму как загрузить саму картинку

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

Option Explicit

Private Type ICONDIR
    idReserved As Integer
    idType As Integer
    idCount As Integer
End Type
Private Type ICONDIRENTRY
    bWidth As Byte
    bHeight As Byte
    bColorCount As Byte
    bReserved As Byte
    wPlanes As Integer
    wBitCount As Integer
    dwBytesInRes As Long
    dwImageOffset As Long
End Type

Private Type BITMAPINFOHEADER
    biSize As Long
    biWidth As Long
    biHeight As Long
    biPlanes As Integer
    biBitCount As Integer
    biCompression As Long
    biSizeImage As Long
    biXPelsPerMeter As Long
    biYPelsPerMeter As Long
    biClrUsed As Long
    biClrImportant As Long
End Type
Private Type RGBQUAD
    rgbBlue As Byte
    rgbGreen As Byte
    rgbRed As Byte
    rgbReserved As Byte
End Type

Private Type BITMAPINFO
    bmiHeader As BITMAPINFOHEADER
    bmiColors As RGBQUAD
End Type

Private Declare Function SetDIBitsToDevice Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal Scan As Long, ByVal NumScans As Long, Bits As Any, BitsInfo As Any, ByVal wUsage As Long) As Long

Dim IconCount() As ICONDIRENTRY
Dim i

Private Function hIconFromFile(ByVal strFileName As String) As Long
    Dim bICOData() As Byte
    Dim n As Long
    Dim BIH As BITMAPINFOHEADER
    Dim IDE As ICONDIRENTRY
    Dim ID As ICONDIR
    Dim BI As BITMAPINFO
   
    n = FreeFile
    Open strFileName For Binary Access Read As #n
        Get #n, 1, ID
       
        ReDim IconCount(ID.idCount)
        Get #n, 7, IconCount
        'Get #n, 38

'то самое место

    Close #n
           
    For i = LBound(IconCount) To UBound(IconCount) - 1
        MsgBox ID.idCount & "   " & IconCount(i).bWidth & "   " & IconCount(i).bHeight & "   " & IconCount(i).wBitCount & "   " & IconCount(i).dwImageOffset
    Next

'SetDIBitsToDevice

End Function

Private Sub Form_Click()
    hIconFromFile "d:\1.ico"
    Refresh
End Sub


ребяты помогите

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

Сообщение tyomitch » 09.07.2006 (Вс) 11:28

ftp://cs.usu.edu.ru/util/IcoCur/
там и описание, и готовый код на VB
Изображение

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 09.07.2006 (Вс) 14:17

tyomitch что-то там вообще ничего не ясно, намутили

а как быть в моем случае?

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

Сообщение tyomitch » 09.07.2006 (Вс) 14:40

Если ничего не ясно, юзай LoadPicture
Изображение


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

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

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

    TopList