2010-04-23 4 views
0

Après avoir utilisé setcontrolfont, le texte du champ de texte ne se met pas à jour. Le seul moyen que j'ai fixé est de supprimer puis de lire tout le texte, mais cela semble hackish. Comment puis-je le faire correctement? MerciMettre à jour le champ de texte après le changement de police (Win32)

* sa fonction que je fait:

void SetControlFont(HWND hand, int size, char* name) 
{ 
    HGDIOBJ hfDefault; 
    hfDefault = (HGDIOBJ)CreateFontA(size, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,name); 
    SendMessage(hand, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); 
} 
+1

Je ne pense pas que 'SetControlFont' est une fonction Win32. Utilisez-vous un cadre particulier? – MSN

Répondre

3
SendMessage(hand, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)) 

Le MAKELPARAM(FALSE, 0) dit la fenêtre qu'il ne devrait pas se redessiner. Avez-vous essayé d'utiliser MAKELPARAM(TRUE, 0) à la place?


Si vous ne voulez pas changer la fonction SetControlFont, vous pourriez dire le champ de texte à se redessiner après avoir appelé SetControlFont en appelant RedrawWindow.

+0

merci qui l'a fait! – jmasterx

Questions connexes