to post a new message or reply to an existing one. If you are not registered, please
NOTE: Some forums may be read-only if you are not currently subscribed to
our technical support services.
Dec 29, 2010 - 2:09 AM
I have a class that was previously derived from CButton. Its job is to paint a png file. It works in non Prof UIS application. I need to use it in Prof UIS application. I changed it’s base class to CExtButton from CButton. When it paints the bitmap from png file paints correctly but the background it paints over is the desktop rather than that of the parent window. The parent window is derived from
CExtResizableDialog which is skinned and uses a gradient background. I want by the transparency in the bitmap to show the parent background not the desktop background
The code used to write the bitmap is
CPngButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)if(m_bPngBitmapLoaded)//Get device context object
graphics.DrawImage(m_PngBitMap, 0, 0);
Perhaps this is not the most ProfUIS compliant approach and I am willing to change it I just need this to work and need it to work soon.
So how to get the transparent area of the bitmap to draw show the area of the parent (gradient skinned background) rather than the desktop.
Dec 30, 2010 - 12:38 PM
CExtIconButton class is a
CExtButton-based control displaying a bitmap (
CExtIconButton::m_icon::m_bmpNormal). You can also use
CExtLabel control to display your PNG bitmap (
CExtLabel::SetBitmapEx()). Both controls render the
CExtBitmap extended bitmap into the Win32 device context surface. The
CExtBitmap class is a non
CBitmap-based bitmap object which supports per-pixel PNG transparency on any Windows OS including old Windows 95 and NT 4.0. But the
CExtBitmap class does not contain PNG loading code. You can use the
CExtSkinBitmap class from the ProfSkin library for loading PNG images.