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 General Discussion » CExtCheckBox and transparent BK Collapse All
Subject Author Date
Jonas Gauffin Nov 30, 2005 - 5:48 AM

How do I get a transparent background for the CExtCheckbox?
Here is how it look now: http://www.gauffin.org/settings.png

Mac Will Dec 3, 2005 - 8:08 AM

Hi,


Ya I guess I was wrong. I am now having the same problem as you?  Adding the ddx control got rid of the problem for a static text element but I can’t fix the problem with the checkboxes.


I think it has something to do with not registering these items in the command manager. or not adding the window to the profile?


So basically TS I don’t want to make the background transparent as I would like to use your CExtCheckBox but i don’t want the effect as seen in the picture above.


 


Thanks in advance for clearing up my confusion.


 


MAC

Mac Will Nov 30, 2005 - 8:20 AM

This will go away if you assign these boxes to a DDX control.


If not they won’t inherit the style of the application

Jonas Gauffin Nov 30, 2005 - 9:00 AM

They got DDX control.
    DDX_Control(pDX, IDC_PICK_MANUALLY, m_chkPickManually);
    DDX_Control(pDX, IDC_ALWAYS_ON_TOP, m_chkAlwaysOnTop);
    DDX_Control(pDX, IDC_POPUP, m_chkPopup);

Technical Support Dec 1, 2005 - 8:04 AM

If you make the CExtCheckBox background transparent, then the control will be identical to the standard check box control. So, the question arises: Why are you using CExtCheckBox? Just use the standard Windows Check Box control instead. If you do need the CExtCheckBox control with a transparent background, please use the following class:

class CMyCheckBox : public CExtCheckBox
{ 
protected:
    virtual void _RenderImpl(
        CDC & dc,
        bool bTransparent = false,
        bool bCombinedContent = false
        )
    {
        CExtCheckBox::_RenderImpl(
            dc,
            true, // bTransparent
            false
            );
        return;
    }
};