StretchBlt et objet Printer

electroremy Messages postés 13 Date d'inscription samedi 19 juillet 2003 Statut Membre Dernière intervention 6 mars 2011 - 26 mars 2008 à 18:23
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 27 mars 2008 à 05:15
Bonjour,

je suis en train de terminer la version III de CiDess.

je programme en VB5 SP3

J'ai rencontré pas mal de déboirres pour dessiner et imprimer du texte incliné et à l'échelle, mais j'y suis arrivé. Par contre je n'ai pas réussi à "retourner" du texte.

j'ai donc recours à l'API StretchBlt. le code suivant ne fonctionne pas :

Declare Function GetLastError Lib "kernel32" () As Long
Const SRCCOPY = &HCC0020
Private Declare Function StretchBlt Lib "gdi32" (ByVal HDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

    Dim ret As Long
    Dim PL As Long
    Dim PT As Long
    Dim PW As Long
    Dim PH As Long
    Dim HDC As Long
...
ici j'imprime les textes qui doivent êtres retournés; en prenant soin bien sur de calculer leur coordonnées et angle pour qu'une fois retournés il soient à l'envers (c'est à dire lisibles par transparence de l'autre côté de la feuille) mais au bon endroit
...
    Printer.ScaleMode = 3
    PL = Printer.ScaleLeft
    PT = Printer.ScaleTop
    PW = Printer.ScaleWidth
    PH = Printer.ScaleHeight
    HDC = Printer.HDC
    ret = StretchBlt(HDC, PL, PT, PW, PH, HDC, PL, PT + PH, PW, -PH, SRCCOPY)
    Printer.ScaleMode = 5
...
ici j'imprime le reste
...

Avez vous une piste ?

Merci

http://www.remylucas.fr

2 réponses

electroremy Messages postés 13 Date d'inscription samedi 19 juillet 2003 Statut Membre Dernière intervention 6 mars 2011
26 mars 2008 à 18:26
Précision :

quand je dis que ça ne marche pas, en fait il n'y a aucun plantage. simplement il n'y a aucun effet. Les valeurs renvoyées 'ret' et la valeur renvoyé par getlasterror executée juste après renvoient toutes deux '0'.

http://www.remylucas.fr
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 mars 2008 à 05:15
pas de rotation avec StretchBlt...

voir avec ce genre de code :

lien:http://www.vbfrance.com/codes/LABEL-VERTICAL-AVEC-ANGLE-ROTATION-LIBRE-360-EFFET_26755.aspx

utilise le 'Escapement' de ton LogFont

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Rejoignez-nous