[VC++] Question sur une Edit Box

Question sur une Edit Box [VC++] - C++ - Programmation

Marsh Posté le 25-10-2001 à 11:34:54    

Hello,  
 
Je travaille actuellement sur un programme de chat, et j'utilise une zone de saisie (Edit Box) en lecture seule pour afficher le texte. Ce qui m'embête, c'est que je ne trouve pas le moyen de changer la couleur du texte.  
 
Quant à la police d'écriture, il suffit d'employer SetFont(), mais n'est-ce pas possible de changer la police d'une _partie_ du texte ? De même pour la couleur du texte d'ailleurs, m'enfin je sais déjà pas comment la changer globalement :(
 
Sinon, j'ai pensé au Rich Edit Control, mais y'a que la couleur de fond que je peux modifier manifestement. Mais surtout, le programme ne se lance pas dès que je rajoute un contrôle de ce type  :??:  
 
Enfin bref, je doute qu'on puisse faire ce que je voudrais (ce serait quand même pratique je trouve), mais si c'est malgré tout le cas, merci d'avance de m'aider ;) C'est pas indispensable à mon chat, ce serait un petit +...

Reply

Marsh Posté le 25-10-2001 à 11:34:54   

Reply

Marsh Posté le 25-10-2001 à 14:49:49    

Regarde du coté de la méthode OnCtlColor
Elle est appelée dès qu'un controle doit etre dessiné.
 
Tu fais un switch sur le controle en cours d'update. Et tu règles la couleur, etc...
 
 [:thenicow]

Reply

Marsh Posté le 07-02-2002 à 16:40:51    

T'as pas essayer de dériver ta class CEdit ?

Reply

Marsh Posté le 07-02-2002 à 17:05:55    

nipper a écrit a écrit :

T'as pas essayer de dériver ta class CEdit ?  




 
génial... et t'espères faire quoi de + en la dérivant !?

Reply

Marsh Posté le 07-02-2002 à 17:10:29    

Si tu veux utiliser un CRicheEditCtrl dans ton programme il te faut rajouter ceci dans le InitInstance:
AfxInitRichEdit();
Voila
 

Sielfried a écrit a écrit :

Hello,  
 
Je travaille actuellement sur un programme de chat, et j'utilise une zone de saisie (Edit Box) en lecture seule pour afficher le texte. Ce qui m'embête, c'est que je ne trouve pas le moyen de changer la couleur du texte.  
 
Quant à la police d'écriture, il suffit d'employer SetFont(), mais n'est-ce pas possible de changer la police d'une _partie_ du texte ? De même pour la couleur du texte d'ailleurs, m'enfin je sais déjà pas comment la changer globalement :(
 
Sinon, j'ai pensé au Rich Edit Control, mais y'a que la couleur de fond que je peux modifier manifestement. Mais surtout, le programme ne se lance pas dès que je rajoute un contrôle de ce type  :??:  
 
Enfin bref, je doute qu'on puisse faire ce que je voudrais (ce serait quand même pratique je trouve), mais si c'est malgré tout le cas, merci d'avance de m'aider ;) C'est pas indispensable à mon chat, ce serait un petit +...  



Reply

Marsh Posté le 07-02-2002 à 17:26:43    

HBRUSH CChatMessageDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)  
{
 HBRUSH hbr;  
 
 switch (nCtlColor) {  
 case CTLCOLOR_EDIT:    
 case CTLCOLOR_MSGBOX:
 case CTLCOLOR_STATIC:
  switch (pWnd->GetDlgCtrlID()) {      
  case IDC_EDITCHAT:
   pDC->SetBkColor(RGB(255,255,255));
   pDC->SetTextColor(RGB(0,0,0));
   hbr = (HBRUSH) m_WhiteBrush;
   break;    
 
  default:    
   hbr = CDialog::OnCtlColor(pDC,pWnd,nCtlColor);  
   break;  
  }  
  break;  
 
 default:  
  hbr = CDialog::OnCtlColor(pDC,pWnd,nCtlColor);  
 }
 
 return hbr;
}
 
En mettant le brush comme tu veux pour la couleur de fond et IDC_EDITCHAT le numero de ton control


---------------
VT ... Vaucluse / Vrille(euse :sarcastic: ) c'est pareil tant qu'il y a l'humour :D
Reply

Marsh Posté le 08-02-2002 à 09:44:04    

El_Gringo a écrit a écrit :

 
 
génial... et t'espères faire quoi de + en la dérivant !?  




 
 
T'intercept les insertions de text et la tu peut changer la couleur

Reply

Marsh Posté le 05-03-2002 à 20:01:41    

oui, comment changer la couleur d'une partie du texte ? En dérivant la classe ? Un petit bout de code serait le bienvenu !
merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed