Les gars, quelqu'un peut-il me donner un bref aperçu de la façon de changer la couleur d'arrière-plan d'un contrôle CEdit à l'exécution? Je veux être en mesure de changer l'arrière-plan en rouge si le champ est de longueur nulle et le blanc normal sinon.MFC: Modification de la couleur de CEdit
4
A
Répondre
6
Vous ne pouvez pas le faire avec un simple CEdit, vous devez remplacer quelques bits.
implémenter votre propre gestionnaire de ON_WM_CTLCOLOR_REFLECT, puis retournez votre couleur CBrush dans le gestionnaire:
(à peu près, vous aurez besoin de mettre la gestion des ressources d'habitude là-bas, rememebr supprimer votre pinceau dans la destructor)
class CColorEdit : public CEdit
{
....
CBrush m_brBkgnd;
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor)
{
m_brBkgnd.DeleteObject();
m_brBkgnd.CreateSolidBrush(nCtlColor);
}
}
3
Cela peut aussi être fait sans en tirer de CEdit:
- Ajouter
ON_WM_CTLCOLOR()
-BEGIN_MESSAGE_MAP()
bloc de code de votre boîte de dialogue. Ajouter
OnCltColor()
à votre classe de dialogue:afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
Mettre en oeuvre
OnCtlColor()
comme ceci:HBRUSH CMyDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { if ((CTLCOLOR_EDIT == nCtlColor) && (IDC_MY_EDIT == pWnd->GetDlgCtrlID())) { return m_brMyEditBk; //Create this brush in OnInitDialog() and destroy in destructor } return CDialog::OnCtlColor(pDC, pWnd, nCtlColor); }
Questions connexes
- 1. Windows Mobile/Pocket PC: Comment puis-je changer la couleur de la bordure de concentré/non focalisée CEdit, CListCntl, CButton dans MFC ou Win32
- 2. MFC: Modification de la police d'un contrôle List
- 3. Contrôles de redimensionnement dans MFC
- 4. Modification de la couleur des barres individuelles dans Microsoft.Interop.Graph.Chart .NET?
- 5. Modification de la couleur des éléments déroulants dans TDBLookupComboBox
- 6. Modification de la couleur d'une liste déroulante lorsqu'elle est fermée
- 7. Comment faire défiler correctement CEdit?
- 8. Modification de la couleur du lien en fonction de la fonction de feuille de style
- 9. Modification de la couleur d'arrière-plan de la barre de titre WPF
- 10. Comment réserver la position du curseur dans le contrôle CEdit?
- 11. UITableView modification de la propriété?
- 12. Comment gérer CEdit clic de souris sous forme parent?
- 13. Modification de la couleur de la bordure dans les cellules UITableView iPhone (non groupées)
- 14. CEdit contrôle la longueur maximale? (en caractères qu'il peut afficher)
- 15. Définition de la couleur d'arrière-plan CMDIFrameWnd
- 16. validant CEdit sans sous-classe
- 17. Comment recréer le style utilisé par l'éditeur de ressources lors de la création dynamique de contrôles MFC?
- 18. Modification de la couleur d'arrière-plan dans vim dans une certaine colonne
- 19. OpenGL à OpenGL-ES - Modification de la couleur des triangles dans une bande
- 20. Modification de la couleur d'un lien sélectionné incorporé dans une table
- 21. Changer la couleur de JFileChooser
- 22. Équivalent .NET de la fonction MFC SetModifiedFlag
- 23. Comment changer la police/couleur sur dialogue MFC pour Windows Mobile?
- 24. Modification d'un sIFR "Article actuel" Couleur sans page Recharger
- 25. Utilisation de MFC: GetWindowRect
- 26. Modification de la BackColor de mon UserControl personnalisé - aide!
- 27. Modification de la valeur NumberConstants.decimalSeparator()
- 28. Changer la couleur de la date
- 29. Apparence de l'assistant MFC
- 30. Téléchargement de fichier MFC