TooolbarButton transparency. A proposal of solution

normatec

New Member
Licensed User
The proposal is to acquire at runtime from the registry the color of the toolbar and use it to replace the 0.0 pixel color of the bitmaps of an ImageList.
I hope it is useful

Sub Globals
Dim Type (R,G,B) color
Dim binary(0) As Byte

Sub App_Start
' ...
' ...
if cPPC = True Then
' acquire the color...
reg.New1
reg.RootKey(reg.rtLocalMachine)
key = "System\GWE"
binary() = reg.GetValue(key,"SysColor")
RegOrder = 15 ' position of the BtnFaceColor (used by the toolbar)...
color.R = binary((4 * RegOrder)+0)
color.G = binary((4 * RegOrder)+1)
color.B = binary((4 * RegOrder)+2)
' replace the color...
For i = 0 To ImageList1.Count - 1
bitmap1.New3 (ImageList1.Item(i))
color0_0 = bitmap1.GetPixel1 (0, 0)
For x = 0 To bitmap1.Width -1
For y = 0 To bitmap1.Height -1
If bitmap1.GetPixel1 (x, y) = Color0_0 Then
bitmap1.SetPixel(x, y, Rgb (color.R,color.G,color.B))
End If
Next
Next
ImageList1.Item(i) = bitmap1.Value
Next
End If
' now we create the toolbarbuttons...
bar.New1("FormXXXX")
btn1.New1
bar.AddToolBarButton(btn1.Value)
btn1.Style = btn1.stToggleButton
bar.AddImage2(ImageList1.Item(0))
'...
 

Byak@

Active Member
Licensed User
normatec nice method!
but it doesn't work with WisBar... may be in future Erel do real transparent...i'm see it in c#
 
Top