2011-09-24 3 views
2

D'abord, j'utilise Windows Api.C++ Windows Taille des caractères

J'ai donc un contrôle d'édition, qui doit pouvoir contenir 22 caractères maximum. Actuellement, seulement 12 correspondent à la police que je voudrais utiliser.

Existe-t-il un moyen de redimensionner la police bien que l'utilisateur est en train de taper pour permettre plus de texte pour s'adapter sans créer un tas de polices?

+1

La réponse courte est non. La réponse longue est: Créer un tas de polices ne devrait pas poser de problème. Vous devriez probablement être plus préoccupé par la mise à l'échelle de la police. – pezcode

+0

Pourquoi ne pas simplement définir une taille de police qui autorise 22 caractères (ou redimensionner le contrôle d'édition) à l'avant? Aucun code spécial requis. – user786653

+1

Redimensionner la police serait assez visuellement choquant et supprimerait le cue visuel-combien-je-besoin-de-type –

Répondre

0

Eh bien, vous pourriez. Implémentez un gestionnaire de messages pour EN_CHANGE afin que vous sachiez que le texte a été modifié. Utilisez GetWindowDC et DrawTextEx avec les indicateurs DT_CALCRECT et DT_EDITCONTROL pour mesurer la taille du texte. Envoyer WM_SETFONT pour changer la police du contrôle si elle ne rentre pas et répète.

L'utilisateur étant satisfait du résultat final est cependant très improbable.

Questions connexes