StretchBlt et objet Printer

Signaler
Messages postés
13
Date d'inscription
samedi 19 juillet 2003
Statut
Membre
Dernière intervention
6 mars 2011
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
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

Messages postés
13
Date d'inscription
samedi 19 juillet 2003
Statut
Membre
Dernière intervention
6 mars 2011

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
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