Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » How to make CExtResizeable Dialogs transparent Collapse All
Subject Author Date
Ed Grochowski Sep 25, 2006 - 6:58 PM

We are interested in make some of our dialogs transparent so you can see the underlying view data (to a certain degree). Ideally we’d like to specify alpha blending and opacity factors to control the degree of transparency.

Can you indicate how this can be achieved using the CExtResizeable dialogs?

jb lee Sep 25, 2006 - 11:20 PM

You can try the class CLayerdWindowHelperST.

http://www.codeproject.com/dialog/clayeredwindowhelperst.asp

I didn’t try for CExtResizableDialog derived, but, I think it’ll works.

hope it helps.

jb.

Technical Support Sep 27, 2006 - 11:48 AM

The layered windows are avialable in Windows 2000 or later only. Prof-UIS allows you to detect this. If g_PaintManager.m_bIsWin2000orLater is true, you can use layered windows. In this case the g_PaintManager.m_pfnSetLayeredWindowAttributes and g_PaintManager.m_pfnUpdateLayeredWindow variables are pointers to the SetLayeredWindowAttributes() and UpdateLayeredWindow() Win32 APIs available in Windows 2000 or later.

So, if g_PaintManager.m_bIsWin2000orLater is true, you can create your dialog with the WS_EX_LAYERED extended window style (0x00080000) and invoke the g_PaintManager.m_pfnSetLayeredWindowAttributes(...) code to set the transparency level of the dialog. Please do not specify the WS_EX_LAYERED extended window style when creating windows on older Windows versions to avoid a crash of your application.