Deskbands and aero glass taskbar transparency

P

Pix

I have been trying to find a way to stop the taskbar from losing
transparency whenever my deskband is activated. After many hours of
searching I found out that I need to implement IDeskBand2 interface.
So the deskband doesn't cause the taskbar to lose transparency any
more but now my deskband does not look too pretty when I try to move
other windows underneath the transparent taskbar. It starts changing
colors in a crazy way (blacks and greens becoming whites).

I have observed the behavior of other built-in deskbands (such as
Address) and I found them to be only about 20-30% transparent, with no
whitening effect.

Is there some new API function that I can use to control the level of
transparency of my deskband on Vista? I don't need anything fancy for
a start. All I want is just a standard eye-pleasing behavior, like the
built-in deskbands.

Pix
 

My Computer

C

Chris Hill

On Wed, 23 Aug 2006 23:41:51 +0200, "Pix" <[email protected]>
wrote:

>
>I have been trying to find a way to stop the taskbar from losing
>transparency whenever my deskband is activated. After many hours of
>searching I found out that I need to implement IDeskBand2 interface.
>So the deskband doesn't cause the taskbar to lose transparency any
>more but now my deskband does not look too pretty when I try to move
>other windows underneath the transparent taskbar. It starts changing
>colors in a crazy way (blacks and greens becoming whites).
>
>I have observed the behavior of other built-in deskbands (such as
>Address) and I found them to be only about 20-30% transparent, with no
>whitening effect.
>
>Is there some new API function that I can use to control the level of
>transparency of my deskband on Vista? I don't need anything fancy for
>a start. All I want is just a standard eye-pleasing behavior, like the
>built-in deskbands.
>
>Pix
>


How are you drawing your deskband? With GDI? I don't know anything
about deskband programming, but as an experiment you might try
replacing your painting code with something that draws a 32-bit bitmap
with an alpha channel (or even a simple black rectangle to start with,
which I'd expect to be fully transparent). If that works you can draw
your content to a 32-bit DIB section bitmap using GDI, set the alpha
channel of each pixel as you want it using the pointer to the bits,
then draw the bitmap to the window.

Post back if you have any interesting results, there seems to be a
lack of basic information about how Aero and the DWM (desktop window
manager) interacts with drawing in Vista.

Chris
 

My Computer

P

Pix

[email protected] (Chris Hill) wrote:

>How are you drawing your deskband? With GDI? I don't know anything
>about deskband programming, but as an experiment you might try
>replacing your painting code with something that draws a 32-bit bitmap
>with an alpha channel (or even a simple black rectangle to start with,
>which I'd expect to be fully transparent). If that works you can draw
>your content to a 32-bit DIB section bitmap using GDI, set the alpha
>channel of each pixel as you want it using the pointer to the bits,
>then draw the bitmap to the window.
>
>Post back if you have any interesting results, there seems to be a
>lack of basic information about how Aero and the DWM (desktop window
>manager) interacts with drawing in Vista.


Thanks for your help! I've been thinking about a simpler solution to
make legacy apps (such as my own) cooperate nicely in the new
environment without having the need to rewrite everything.

Basically, my deskband has a few standard windows controls (editbox,
toolbars...) It supports themeing so it works nicely on Windows XP.
Now I've added support for IDeskBand2 which seems to preserve the
taskbar transparency in Vista. So all is well apart from the strange
visual effects when windows are dragged beneath the taskbar and my
deskband.

If my deskband was all GDI, it would be quite easy to follow your
advice but something tells me that setting up a 32-bit bitmap and
drawing all my controls off-screen is not the way to go.

I will try your "black rectangle" test later as I need to run Vista on
a real hardware for Aero to work.

Pix
 

My Computer

Top