dcsimg

Alpha Blending (Transparent) Windows

WEBINAR:
On-Demand

Desktop-as-a-Service Designed for Any Cloud ? Nutanix Frame


Environment: Windows 2000 VC 6.0 Newest Win32 API (Required)

IMPORTANT NOTE:
To compile this sample you must be running Windows 2000 and the latest WIN32 API which you can download from Microsoft.
This program will only run under Windows 2000. It makes use of the new features of the OS.

The purpose of this example is to enable the new Alpha Blending features of Microsoft Windows 2000. It is very easy to do and hardly needs a whole class to do it, but I felt a little cheesy just posting two function calls. :)

To use, add the CAlphaBlend class to your project. Modify the StdAfx.h file to contain the following lines right above the #define VC_EXTRALEAN:

#define _WIN32_WINNT 0x0500
#define WINVER 0x0500

These lines will tell the compiler that it is for Windows NT 5.0 (better known as Windows 2000). They are critical and only work if you have the newest Win32 API.

Then add the following lines of code before you display your window (or after you display it):

// assuming we are about to ShowWindow() in the MyApp.cpp of an SDI
CAlphaBlend ab(m_pMainWnd);
ab.SetTransparent();

This code can be called before or after a window is displayed. You can adjust the opacity (amount of transparency) with the constructor, or the following function:

// valid ranges are 0-255, 255-being totally opaque (not transparent)
ab.SetOpacity(125); 

// I found 220 does about the best blend.

One final note. The alpha blending in Windows 2000 is very slow. I have tried many different ways to optimize it and could never get it any faster than it is. The only way I can think of is to handle the algorithm and thus the Alpha Blending myself. I don't really want to tackle that at the moment, so any optimizations any of you could make would be cool. Please let me know.

Downloads

Download demo project - 18 Kb
Download source - 2 Kb


Comments

  • There are no comments yet. Be the first to comment!

  • You must have javascript enabled in order to post comments.

Leave a Comment
  • Your email address will not be published. All fields are required.

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date