J'ai un dialogue dans lequel la boîte d'édition est désactivée mais le texte doit être affiché en rouge au lieu du gris par défaut. J'ai essayé les éléments suivants:Comment modifier la couleur du texte dans une zone d'édition désactivée à l'aide de MFC?
void CMyEdit::OnEnable(BOOL bEnable)
{
CEdit::OnEnable(bEnable);
if (bEnable)
{
m_BackGroundColor = kRGBWhite;
}
else
{
m_BackGroundColor = kRGBDefaultGray;
}
m_TextColor = kRGBRed;
m_BackgroundBrush.DeleteObject();
m_BackgroundBrush.CreateSolidBrush(m_BackGroundColor);
Invalidate();
}
Mais son affichage encore le texte en gris seulement. Mais si je supprime l'appel de la classe de base CEdit::OnEnable(bEnable);
, la nouvelle couleur du texte prend effet. Quelqu'un peut-il expliquer ce qui ne va pas dans le code?
Merci pour votre temps.
acclamations ...
EDIT: (Déplacer mon commentaire à modifier un) Désolé j'ai oublié de le mentionner dans mon message d'origine. Au lieu de gérer le ON_WM_CTLCOLOR(), ON_WM_CTLCOLOR_REFLECT() est géré. Ce que je ne comprends pas, c'est que la suppression de l'appel à la classe de base, change la couleur du texte à ce qui est spécifié, mais en gardant cela change le gris par défaut.
merci pour votre réponse. S'il vous plaît voir le commentaire que j'ai ajouté à la question. – yasouser