electroremy
Messages postés13Date d'inscriptionsamedi 19 juillet 2003StatutMembreDernière intervention 6 mars 2011
-
26 mars 2008 à 18:23
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 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
...
electroremy
Messages postés13Date d'inscriptionsamedi 19 juillet 2003StatutMembreDerniè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'.