rachid1245
Messages postés16Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention20 avril 2011
-
18 août 2008 à 13:13
rachid1245
Messages postés16Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention20 avril 2011
-
19 août 2008 à 11:26
Bonjour à tous
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Voilà, je dispose d’une formview avec différents contrôles.
Je dispose également d’une classe Cresizer qui me permet de redimensionner les contrôles en fonction de la dimension de fenêtre parent (formview). Les contrôles sont redimensionnés parfaitement lorsque je change les dimensions de la formview.
Quand je maximise la fenêtre, les contrôles changent de dimensions et deviennent "plus grands" et parfois la taille de la fonte utilisée n’est plus adaptée aux nouvelles dimensions.
Pour changer les fontes des contrôles qui peuvent être ownerdraw j’utilise la fonction DrawItem dans laquelle je change la taille de la fonte en fonction de la dimension du contrôle recupérée dynamiquement dans DrawItemStruct.
Mon problème c’est pour un CEdit, je trouve moyen de changer la taille de sa fonte, mais pas de façon dynamique.
Quel message dois-je récupérer pour modifier la fonte dans son handler de façon que la fonte colle parfaitement aux dimensions du contrôle de foçon dynamique.
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 18 août 2008 à 17:36
Salut,
En API (sans MFC) il suffit d'envoyer au controle le message WM_SETFONT avec le handle de la police voulue. Exemple:
HFONT police=CreateFont(......);
SendMessage(hwndedit,WM_SETFONT,(WPARAM)police,0);
rachid1245
Messages postés16Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention20 avril 2011 19 août 2008 à 11:26
Salut et merçi beaucoup pour les tuyaux,
Pour Racpp je précise que le problème n’est pas de changer de font pour le contrôle edit,
J’ai une fonction « SetAdjustedFont() » qui va chercher les dimensions de l’edit et en fonction de la longueur maximale de la chaine de caractère qu’on compte y saisir, va calculer la bonne taille de fonte adaptée pour une très bonne harmonie du texte avec le contrôle.
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Le problème c’est qu’il faut que cette fonction soit appelée automatiquement à chaque fois que le contrôle est redimensionné.
Yann_lo_san a donné le bon tuyau il faut appelé cette fonction dans le OnSize de la fenêtre parent