2010-02-14 1 views
1

J'ai toujours utilisé le contrôle ListBox par défaut avec la propriété de OWNER DRAW définie sur NO. Mais maintenant, je dois définir une police mono de taille fixe car mes chaînes formatées ne s'alignent pas, même si j'ai la valeur par défaut aligné à droite et la largeur nécessaire au-delà de la taille réelle de la chaîne de chiffres. Mon problème est que je n'ai pas la moindre idée de la façon la plus simple de coder pour cela, et que je n'ai jamais codé pour OWNER DRAW réglé sur autre chose que NO. Appréciez toute entrée ou tout exemple ou lien. En outre, voudrais des informations sur la façon dont je vérifierais même voir quelles polices mono-largeur fixes sont disponibles sur le système exécutant mon application? (C++ MFC, Visual Studio)Façon simple de définir le type de police dans MFC CListBox

Répondre

0

Ne sait pas sur CListBox, mais dans la liste Windows standard, vous pouvez utiliser le message WM_SETFONT pour définir la police du contrôle. CListBox encapsule probablement la liste déroulante native, donc si vous pouvez obtenir le HWND de la CListBox, il devrait être facile de définir la police en utilisant WM_SETFONT.

+0

Merci pour la réponse Je vais essayer ce soir quand je rentre à la maison. J'ai l'impression d'avoir à lire que je vais devoir changer mes propriétés de listbox à OwnerDraw afin de changer la police, donc je vais devoir apprendre tout ça aussi. –

2

Déclarez un objet CFont et initez-le avec CFont::CreateFont.
"Courier New" est généralement un bon choix pour les polices à largeur fixe.

Utilisez la méthode SetFont() de CListBox pour remplacer la méthode par défaut (héritée de CWnd).

+0

Merci pour la réponse Je vais essayer ce soir quand je rentre à la maison. J'ai l'impression d'avoir à lire que je vais devoir changer mes propriétés de listbox à OwnerDraw afin de changer la police, donc je vais devoir apprendre tout ça aussi. –

Questions connexes