Re:Comment appliquer une police et une couleur à un contrôle ?

marcel6566 Messages postés 25 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 17 octobre 2006 - 23 sept. 2003 à 01:07
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 23 sept. 2003 à 08:51
rebonjour et merci pour l'aide, mais ...
Toujours pas de modification de police, fonte, couleur dans le controle Edit.
Une partie de mon programme :
void CAffiche::OnButton1()
{
...
// Création de la police
HFONT Gras = CreateFont(15,15,0,0,900,1,1,0,0,0,0,0,0,"arial");

// Application de la police sur l'edit
SendMessage(IDC_EDIT1, WM_SETFONT, (WPARAM)Gras, MAKELPARAM(TRUE, 0));

m_edit1=mot;
UpdateData (FALSE);
...
}

j'obtiens ce message d'erreur :
error C2660: 'SendMessageA' : function does not take 4 parameters

Si je retire MAKELPARAM(TRUE, 0), le programme est lancé, mais aucune modification d'Edit.

Message d'origine:
Je suis instit et pour mes élèves de CP, je réalise un petit programme sur le thème du livre de lecture RATUS.

Cependant, je ne sais pas comment modifier la police de caractère, la taille et le couleur à l'interieur d'un seul contrôle "Edit".

Merci pour votre aide.

Réponse :
Pour changer la police, taille, gras, souligné et otr :

// Création de la police
HFONT Gras = CreateFont(14,5,0,1,FW_BLACK,FALSE,FALSE,FALSE,DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_DECORATIVE,"Perso");

// Application de la police sur l'edit
SendMessage(EditHandle, WM_SETFONT, (WPARAM)Gras, MAKELPARAM(TRUE, 0));

Voila, tu n'as qu'a modifier tt ce que tu veu pour arriver a tes fins, par contre, ds un edit, un changement se fait sur TOUT le texte, et pas seulement sur une portion de texte
voila, @+

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 sept. 2003 à 08:51
HFONT Gras est local a la fonction donc mort en sortie, par contre il y a bien fuite de memoire !!!
Mets HFONT Gras dans le h de la classe, ininialise le dans le constructeur. Le destructeur doit avoir DeleteObject(Gras);
Regarde si le sabir mfc inclut SendDlgItemMessage.
Si oui:
SendDlgItemMessage(IDC_EDIT1, WM_SETFONT, (long)Gras, 1);
et devrait aller.
BruNews, ciao...
0
Rejoignez-nous