Window Transparency

When you're creating an application with non-rectangular windows, there's the "old way" (associating a region with the window) and the "new way", using a transparency mask.


The "old way" works pretty well, but it's a pain to set up.  Creating a transparency mask is easy, and setting your form up to use it is easy as well, but there's a caveat:


But MSDN has this warning: "Monitors set to a color depth of greater than 24-bit can have display problems with certain parts of the form not being transparent, despite setting of the TransparencyKey property. To avoid this problem, ensure that the monitor's color depth is set to less than 24-bit in the Display control panel. When developing applications that feature this transparency, keep in mind that you will have to make your users aware of this issue."


This makes the whole feature useless.


Seriously - if you're going to give me a feature, but then tell me that it might not work for some users and the only solution is for me to ask my users to mess with their video settings, just don't bother giving me the feature.


This isn't about getting newer video drivers or getting a newer version of Windows; it's just a feature that doesn't work for some people (because they have their desktop set the way they want it: 32 bit colour depth).


The moral of this story:  If you need a non-rectangular window shape, go to the trouble of creating a region for it and using that to set the shape of the window.