OVH Cloud OVH Cloud

affichage long vc++

3 réponses
Avatar
sebastien.plipon
Bonjour,

je souhaite afficher du texte (avec mise en forme) et des images, dans
une fenêtre sous vc++ 6.0, sans utiliser les mfc.
Actuellement j'utilise la fonction TextOut pour afficher mon texte.

Est-ce la bonne méthode ?

Mon affichage (texte + image) étant long, il dépasse la hauteur de la
fenêtre. Les ascenceurs sont la pour cela, mais la fonction TextOut
est limitée en hauteur.

Est-ce que je dois moi-même gérer l'affichage, afin de ne prendre que
les lignes visibles selon la position des ascenceurs ? Est-ce qu'il
existe une meilleur solution ?
Merci pour vos réponses.

3 réponses

Avatar
Manuel Leclerc
splipon a écrit :

je souhaite afficher du texte (avec mise en forme)
et des images, dans une fenêtre sous vc++ 6.0, sans
utiliser les mfc. Actuellement j'utilise la fonction
TextOut pour afficher mon texte.

Est-ce la bonne méthode ?



Aucune idée. TextOut permet d'afficher du texte, pas
des images. Si tu sais générer un format RTF, je crois
que tu pourrais aussi demander à un contrôle de type
RichEdit de faire le boulot, mais je ne sais pas
comment on fait.

Mon affichage (texte + image) étant long, il dépasse la
hauteur de la fenêtre. Les ascenceurs sont la pour cela,
mais la fonction TextOut est limitée en hauteur.

Est-ce que je dois moi-même gérer l'affichage, afin de ne
prendre que les lignes visibles selon la position des
ascenceurs ? Est-ce qu'il existe une meilleur solution ?



Deux solutions :

1) maintenir toi même une structure de données indiquant
quelle est la zone actuellement visible et peindre en
conséquence

2) bidouille : créer une fenêtre fille et _déplacer_ cette
fenêtre en fonction des demandes de scrolling.

Dans les _deux_ cas, tu devrais tenir compte du rectangle
effectivement à peindre pour éviter de dérouler tout
algorithme de peinture, et surtout pour éviter d'appeler
Win32 pour qu'il calcule un dessin qui sera clipé. Ceci dit,
sur une machine pas trop ancienne, c'est parfois difficile
de constater une différence entre une version optimisée du
paint et une version qui ne se pose aucune question. Ca dépends
un peu de ce que tu veux faire.
Avatar
patrox
La fonction que tu cherche s'appelle DrawText, oui il faudrai gerer les
ascenceurs toi meme.

Ceci dit un controle RTF ou EDIT gere presque tout tout seul ( CreateWindow
pour le creer )

pat.
Avatar
Quentin Pouplard
(splipon) wrote:
Bonjour,

je souhaite afficher du texte (avec mise en forme) et des images, dans
une fenêtre sous vc++ 6.0, sans utiliser les mfc.
Actuellement j'utilise la fonction TextOut pour afficher mon texte.

Est-ce la bonne méthode ?



Etrange

Mon affichage (texte + image) étant long, il dépasse la hauteur de la
fenêtre. Les ascenceurs sont la pour cela, mais la fonction TextOut
est limitée en hauteur.



La fonction textout est assez bas niveau et permet en effet d'afficher
du texte... mais sous windows tu as les controles, genre HTML, RTF,
texte... profite en!

Est-ce que je dois moi-même gérer l'affichage, afin de ne prendre que
les lignes visibles selon la position des ascenceurs ? Est-ce qu'il
existe une meilleur solution ?



Utiliser un richtextbox par exemple.



--
Quentin Pouplard (Tene/MyOE)
http://www.myoe.org | http://graff.alrj.org