Bonjour,
Qqun sait il comment faire pour que quand je créé un contrôle (createwindow)ou que j'affiche un texte sur une fenêtre ,la policene soit pas en GRAS mais en normale ?Car chez moi c'est en gras par défaut ...
Merci
Zazeglu
Bonjour,
Qqun sait il comment faire pour que quand je créé un contrôle (createwindow)ou que j'affiche un texte sur une fenêtre ,la policene soit pas en GRAS mais en normale ?Car chez moi c'est en gras par défaut ...
Merci
Zazeglu
regarde du coté de CreateFont avec la msdn
Elle est pas en gras, c'est une police différente c'est tout.
Tu peux récupérer la police habituelle avec GetStockObject et l'appliquer à tes composants via un WM_SETFONT.
D'accord ; mais je fait comment pour l'appliquer au composant ?
Merci
Zazeglu
SendMessage( hComposant, WM_SETFONT, ...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Windows/WindowReference/WindowMessages/WM_SETFONT.asp
Comme ça cela ne semble pas fonctionner:
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 HGDIOBJ font; ... case WM_SETFONT: font = GetStockObject(ANSI_FIXED_FONT); SendMessage(txtConsole,WM_SETFONT,(WPARAM)font,0); break;
zazeglu
Attention que le champ LPARAM du message doit être construit avec la macro MAKELONG(True,0) pour que le contrôle ou la fenêtre se redessine. Donc, si tu passes la valeur 0, l'affichage n'est pas mis à jour.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SendMessage(txtConsole,WM_SETFONT,font,MAKELONG(True,0));
Ah bon ; mais malheureusement cela ne change rien
Enfin j'ai essayé ça en C ,donc je suppose que True peut être remplacé par la valeur 1.
merci
Zazeglu
Le meilleur moment pour changer la fonte du contrôle (donc, envoyer un message WM_SETFONT) est la réception d'un message WM_INITDIALOG.
Je m'excuse encore d'être si embêtant,mais ça ne vas tjrs pas
![]()
C'est peut être une erreur dans GetStockObject() ?
Cela renvoie un type HGDIOBJ alors que je le caste en WPARAM dans la fonction SendMessage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 font = GetStockObject(ANSI_FIXED_FONT);
Merci
Zazeglu
Normalement, le problème ne vient pas de là :
- Si tu compiles en 16 bits, le handle renvoyé par GetStockObject est codé sur 16 bits et le champ WPARAM aussi;
- Si tu compiles en 32 bits, le handle est codé sur 32 bits mais le champ WPARAM du message est lui aussi 32 bits.
Par contre, je me demande s'il ne faut pas attribuer le style DS_SETFONT au dialogue pour que les messages WM_SETFONT aient un effet.
Désolé, mais j'ai très peu de doc là-dessus. Vois toujours du côté de MSDN :
http://msdn.microsoft.com/library/de...WM_SETFONT.asp
Ce code ne doit pas être placé dans WM_SETFONT mais juste après la création du controle txtConsole (handle valide biensûr...)
Dans case WM_SETFONT:, ton code ne sera appelé que si tu reçois WM_SETFONT, ce qui se produit rarement.
Donne le code de création de ce controle suivi du SendMessage( WM_SETFONT, ...)
Oui c'était bien ça qui n'allait pas ! J'ai déplacé le code juste en dessous du CreateWindow() et tout va bien !Donne le code de création de ce controle suivi du SendMessage( WM_SETFONT, ...)
Merci beaucoup à vous 2 !
Zazeglu[/code]
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager