Click to See Complete Forum and Search --> : realize palette


August 21st, 1999, 08:06 AM
I had hard time to realize my palette. Following is the sub. The Result always
gives me "0" which means none of my palette entries was realized. Anybody can tell why?

--------------
Sub SetColorScheme()
Dim PlanesSrc As Long
Dim PaletteSizeSrc As Long
Dim LogPal As LOGPALETTE
Dim ib As Integer
Dim bb As Byte
Dim lpPal As Long
Dim Result As Long
Dim R as Long

' Create a copy of the logic palette and realize it if necessary.
LogPal.palVersion = &H300
LogPal.palNumEntries = 256

For ib = 0 To 255
bb = ib
LogPal.palPalEntry(bb).peRed = bb
LogPal.palPalEntry(bb).peGreen = bb
LogPal.palPalEntry(bb).peBlue = 255 - bb
LogPal.palPalEntry(bb).peFlags = 0
Next ib
hPal = CreatePalette(LogPal)

' Select the palette into the destination and realize it.
hPalPrev = SelectPalette(Pic.hdc, hPal, False)

Result = RealizePalette(Pic.hdc)
R = SelectPalette(Pic.hdc, hPalPrev, True)
R = DeleteObject(hPal)

End Sub

Steiny
November 1st, 2000, 09:19 PM
i get the same problem.... i'd love an answer too. I switched the order of a few instructions (which probably is a bad thing anyways), and got a few nonzero returns from the functions, but then i get an overflow when i try and select the palette in.. dunno why. any help for this problem is appreciated!

-Steins

-Steins

Steiny
November 1st, 2000, 09:22 PM
Heres my code...


Dim lPal as LOGPALETTE
Dim hPal as Long

''Create the Palette Entries
''Greyscale
Dim palEntry(256) as PALETTEENTRY
Dim counter as Integer
for counter = 0 to 255
palEntry(counter).peBlue = counter
palEntry(counter).peRed = counter
palEntry(counter).peGreen = counter
palEntry(counter).peFlags = 0
next counter

''Create a Logical Palette
lPal.palVersion = &H300
lPal.palNumEntries = 256

Dim result as Integer

Picture1.Image.hPal = hPal
hPal = CreatePalette(lPal)
result = SetPaletteEntries(hPal, 0, 256, palEntry(0))
result = SelectPalette(frmMain.Picture1.hdc, hPal, false)
result = RealizePalette(hPal)




And it gets an overflow on the SelectPalette... help! :-)

-Steins