2010-04-18 6 views
0

Je crée un contrôle de graphique linéaire, et j'ai besoin d'écrire (ou mieux de dessiner) les noms d'axe et les valeurs d'axe. J'ai trouvé les fonctions DrawText et TextOut, mais le texte qu'elles affichent scintille et ne sait pas comment définir la police et l'orientation du texte (je vais avoir besoin d'une orientation verticale du texte aussi bien qu'horizontale).Quelles sont les fonctions utiles pour dessiner du texte (MFC)?

Y a-t-il d'autres fonctions que vous pourriez recommander ou comment les utiliser et obtenir les résultats dont j'ai besoin?

Répondre

3

Je doute que le scintillement soit causé par DrawText ou TextOut, mais plutôt par votre méthode de peinture. Si vous redessinez toute la fenêtre de l'événement paint, il est probable que Flocker flocera lorsque vous effacerez toute la fenêtre, et il y aura un délai perceptible avant que tous les éléments ne soient redessinés.

Il peut être possible de réduire le scintillement de façon acceptable en peignant uniquement la zone invalidée; Cependant, cela peut devenir complexe. Une méthode plus simple consiste à utiliser le double tampon ; où vous dessinez dans un contexte de mémoire non visible, puis basculez vers un contexte visible.

Essayez Google'ing "MFC double buffer" pour de nombreux exemples.

+0

merci.je vais le chercher. –

1

en faisant GetLogFont() vous pouvez définir l'orientation de la police &, modifiant les membres de LogFont puis faire un CreateFontIndirect() avec les paramètres modifiés. C'est tout ce que Win32 a vraiment à faire avec un emballage très fin, donc vous pouvez lire le Petzold pour obtenir des détails et d'autres exemples.

Questions connexes