transparent button on custom commandbar

C

ckoch

I'm trying to create a toolbar and having the same trouble everyone
does with the button faces. This MS help topic is great:
http://support.microsoft.com/?id=288771
HOWTO: Create a Transparent Picture For Office CommandBar Buttons

It works when you load a picture from a bmp file.:
Set oPic = LoadPicture("c:\testbmp.bmp")

I also tried it by using a bmp loaded into a picturebox.
Set oPic = Picture1.image

But it doesn't work and doesn't give me a transparent button. Any idea
why?
 
K

keepITcool

The reason:
An excel.Picture object is not the same as a stdole.StdPicture


either:

for xl97 (non transparent)
With ctl
Sheet1.Shapes("Icon1").CopyPicture xlScreen, xlBitmap
.PasteFace
End With

for xl2k+

i use an imagelist control on an (empty) userform
to store the 256color bitmaps: the colored picture and the monochrome
mask. The Picture property from an imagelist can be used for icons.


code below is from an addin which needs to be xl97 compatible.

#If VBA6 Then
With ctlWizard
cbr.Protection = msoBarNoProtection
CallByName ctl, "picture", VbLet, _
frmIcons.iml.ListImages("pict").Picture
CallByName ctl, "mask", VbLet, _
frmIcons.iml.ListImages("mask").Picture
End With
Unload frmAbout
#End If


--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam


ckoch wrote :
 
K

keepITcool

Be aware though Pciture/Mask exist only from
OfficeXP/2003 (doesnot exist for Office 2000/Office97

Sub IconSnippet()
Dim ctl As Office.CommandBarButton
Select Case Val(Application.Version)
Case Is < 10
With ctl
Sheet1.Shapes("Icon1").CopyPicture xlScreen, xlBitmap
.PasteFace
End With
Case 10-11
#If VBA6 Then
CallByName ctl, "picture", VbLet, _
frmIcons.iml.ListImages("Pict1").Picture
CallByName ctl, "mask", VbLet, _
frmIcons.iml.ListImages("Mask1").Picture
End With
Unload frmIcons
#End If
End If



--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam


ckoch wrote :
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top