Couleur du texte et du fond d'un CStatic
Bonjour,
Je cherche à pouvoir modifier la couleur et le fond d'un control CStatic.
Pour cela, j'utilise la fichier .h décrit dans la FAQ, le sujet étant:
Comment gérer la couleur sur un contrôle CStatic ou CEdit ?
Dans la fonction OnInitDialog, je fais ceci:
Code:
1 2 3 4 5
| CTplCtrl<CStatic> m_WelcomeCtrl;
COLORREF RGB1 = 0x0000ff00;
COLORREF RGB2 = 0x000000ff;
m_WelcomeCtrl.SetBkColor(RGB1,RGB2); |
Mais aucun changements à lieu au niveau de mon CStatic quand jl'exécute l'application...Pourquoi? :?
Est il possible d'utiliser la fonction CtlColor() pour rendre transparent le fond de mon CStatic afin de bien se superposer avec l'image en fond de ma CDialog?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| HBRUSH CtlColor(CDC* pDC, UINT nCtlColor)
{
bool bCEdit=(IsKindOf(RUNTIME_CLASS(CEdit))?true:false);
HBRUSH hbr=NULL;
ModeColor eMode=Normal;
if(GetStyle() & ES_READONLY) eMode=ReadOnly;
if(!IsWindowEnabled()) eMode=Disable;
// TODO: Change any attributes of the DC here
pDC->SetTextColor(m_arClrCtlText[eMode]);
// Fixe le fond en transparent pour le texte
if(!bCEdit) pDC->SetBkMode(TRANSPARENT);
else pDC->SetBkColor(m_arClrCtlBkText[eMode]);
// retourne le handle de la brush pour le fond si il existe.
if(m_arHbrClrCtlBk[eMode]) hbr = m_arHbrClrCtlBk[eMode];
// TODO: Return a different brush if the default is not desired
return hbr;
} |
Peut être vaut il mieux utiliser le sujet suivant de la FAQ: Comment changer la couleur de fond des contrôles dans une boîte de dialogue ?
Je suis un peu perdu pour savoir ce qui faut utiliser exactement pour arriver à mes fins.
Merci ;)
Nicolas