- Код: Выделить всё
Private Sub Form_Paint()
Dim bi24BitInfo As BITMAPINFO, Dim bBytes(1 To 60) As Byte, LogPal As LOGPALETTE
Dim R As Long
Dim massif(1 To 768) As Byte
With bi24BitInfo.bmiHeader
.biBitCount = 8
.biCompression = BI_RGB
.biPlanes = 1
.biSize = Len(bi24BitInfo.bmiHeader)
.biWidth = 10
.biHeight = 6
End With
Open "1.pal" For Binary Access Read As #1
Get #1, 72 + 1, massif
Close #1
LogPal.palVersion = &H300
LogPal.palNumEntries = 256
j = 1
For i = 1 To 256 Step 1
LogPal.palPalEntry(i).peRed = massif(j + 2)
LogPal.palPalEntry(i).peGreen = massif(j + 1)
LogPal.palPalEntry(i).peBlue = massif(j)
j = j + 3
Next i
hPal = CreatePalette(LogPal)
hPalprev = SelectPalette(Me.hdc, hPal, 0)
R = RealizePalette(Me.hdc)
Далее попробовал отрисовать через:
- Код: Выделить всё
SetDIBitsToDevice Me.hdc, 100, 100, bi24BitInfo.bmiHeader.biWidth, bi24BitInfo.bmiHeader.biHeight, 0, 0, 0, bi24BitInfo.bmiHeader.biHeight, bBytes(1), bi24BitInfo, DIB_PAL_COLORS
Вроде что-то отрисовало, только видимо без использования палитры, т.к. различить на рисунке ничего нельзя. Меня ещё смущает то, что в переменной R содержится 0. Может функция для отрисовки палитру не использует?