Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

OCX - APERÇU AVANT IMPRESSION


Information sur la source

Catégorie :Control Niveau : Initié Date de création : 16/11/2004 Date de mise à jour : 16/11/2004 15:09:49 Vu / téléchargé: 8 348 / 1 743

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Ce composant permet d'ajouter à vos développements un aperçu avant impression.
Les pages sont gérées comme un vulguaire tableau blanc qu'il ne vous reste plus qu'à décorer.
Son utilisation est relativement simple et comprehensible par tout un chacun.
 

Source

  • ' COMMENT UTILISER LE COMPOSANT
  • Option Explicit
  • Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
  • 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
  • Private Sub Command1_Click()
  • If CInt(Text1.Text) < 1 Then Text1.Text = "1"
  • If CInt(Text1.Text) > PrinterPreview1.Count Then Text1.Text = CStr(PrinterPreview1.Count)
  • ' on va à la page désirée
  • PrinterPreview1.GoPage CInt(Text1.Text)
  • End Sub
  • Private Sub Command2_Click()
  • ' on sélectionne toutes les pages
  • PrinterPreview1.SelAll
  • End Sub
  • Private Sub Command3_Click()
  • ' on déselectionne toutes les pages
  • PrinterPreview1.UnSelAll
  • End Sub
  • Private Sub Command4_Click()
  • ' on lance l'impression
  • PrinterPreview1.StartPrint
  • End Sub
  • Private Sub Command5_Click()
  • PrinterPreview1.PrintProperties
  • End Sub
  • Private Sub Command6_Click()
  • PrinterPreview1.About
  • End Sub
  • Private Sub Form_Load()
  • Label1.Caption = "Nombre de page: " & CStr(PrinterPreview1.Count)
  • ' on prépare l'aperçu avant impression
  • PrinterPreview1.Border3D = True
  • PrinterPreview1.PageWidth = Printer.Width ' toujours en Twips les coordonnées
  • PrinterPreview1.PageHeight = Printer.Height ' toujours en Twips les coordonnées
  • PrinterPreview1.MarginLeft = 400 ' toujours en Twips les coordonnées
  • PrinterPreview1.MarginTop = 400 ' toujours en Twips les coordonnées
  • PrinterPreview1.DrawPageNum = True
  • PrinterPreview1.ShowDatetime = True
  • PrinterPreview1.PrintQuality = qHIGH
  • PrinterPreview1.DocumentName = "Essai d'impression"
  • Dim Page As Integer
  • Dim P As IPictureDisp
  • Dim W As Long, H As Long, R As Double
  • ' on charge une image
  • Set P = LoadPicture(App.Path & "\family tux.jpg")
  • ' on ajoute une nouvelle page
  • Page = PrinterPreview1.Add("PaintPicture Mode : mDEFAULT et 2 x mUSER")
  • ' on définit sa couleur de fond
  • PrinterPreview1.SetBackColor Page, RGB(255, 255, 255), False
  • ' on dessine l'image chargée
  • PrinterPreview1.PaintPicture Page, P, mDEFAULT, 0, 0
  • ' on charge une image
  • Set P = LoadPicture(App.Path & "\Kuantum2 1024-768.jpg")
  • ' on calcule sa taille suivant son ratio
  • R = P.Height / P.Width
  • W = 5000
  • H = W * R
  • ' on dessine cette image
  • PrinterPreview1.PaintPicture Page, P, mUSER, 2000, 3000, W, H, pmINVERT
  • ' on charge une image
  • Set P = LoadPicture(App.Path & "\usual suspect.jpg")
  • ' on calcule sa taille suivant son ratio
  • R = P.Height / P.Width
  • W = 8000
  • H = W * R
  • ' on dessine cette image
  • PrinterPreview1.PaintPicture Page, P, mUSER, 5000, 6000, W, H
  • ' on charge une image
  • Set P = LoadPicture(App.Path & "\Big Tux 1280-1024.jpg")
  • ' on ajoute une nouvelle page
  • Page = PrinterPreview1.Add("PaintPicture Mode : mAUTO, SetBackColor avec Bordure, 2 x DrawString, 3 x DrawLine")
  • ' on définit sa couleur de fond
  • PrinterPreview1.SetBackColor Page, RGB(230, 233, 236), True, RGB(115, 133, 153), 1
  • ' on dessine l'image chargée
  • PrinterPreview1.PaintPicture Page, P, mAUTO
  • ' on dessine une chaine de caractère
  • PrinterPreview1.DrawString Page, "Essai 1", "Tahoma", 14, True, 1000, 1000, 5000, 3000, fLEFT, 0, 0, False, False, False, FW_BOLD, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, vbBlue
  • ' on dessine une chaine de caractère
  • PrinterPreview1.DrawString Page, "Essai 2" & vbCrLf & "de bob", "Tahoma", 21, True, 3000, 3000, 5000, 3000, fLEFT, 0, 0, True, True, True, FW_THIN, DEFAULT_CHARSET, OUT_DEVICE_PRECIS, CLIP_STROKE_PRECIS, PROOF_QUALITY, VARIABLE_PITCH, vbRed
  • ' on dessine une ligne
  • PrinterPreview1.DrawLine Page, 1500, 1500, 7000, 7000, vbMagenta, 3
  • ' on dessine une ligne
  • PrinterPreview1.DrawLine Page, 7000, 7000, 2000, 7000, vbMagenta, 3
  • ' on dessine une ligne
  • PrinterPreview1.DrawLine Page, 2000, 7000, 2000, 4000, vbMagenta, 3
  • ' on ajoute une page
  • Page = PrinterPreview1.Add("3 x DrawRectangle, DrawRectangle : Rounded, DrawEllipse")
  • ' on définit sa couleur de fond
  • PrinterPreview1.SetBackColor Page, RGB(255, 255, 255), False
  • ' on dessine un rectangle
  • PrinterPreview1.DrawRectangle Page, 2000, 3000, 5000, 5000, True, vbYellow, vbBlack, 1
  • ' on dessine un rectangle
  • PrinterPreview1.DrawRectangle Page, 5000, 6000, 10000, 5000, False, vbBlue
  • ' on dessine un rectangle
  • PrinterPreview1.DrawRectangle Page, 3500, 4500, 5000, 20000, True, vbGreen, vbWhite, 3
  • ' on dessine un rectangle
  • PrinterPreview1.DrawRectangle Page, 1000, 1000, 4000, 1800, True, vbMagenta, vbBlack, 1, True, 50
  • ' on dessine une ellipse
  • PrinterPreview1.DrawEllipse Page, 1500, 1500, 6000, 6000, True, vbCyan, vbRed, 1, pmAND
  • Picture1.Cls
  • Picture1.Width = Screen.Width
  • Picture1.Height = Screen.Height
  • StretchBlt Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, GetDC(0), 0, 0, Screen.Width, Screen.Height, vbSrcCopy
  • Picture1.Refresh
  • Page = PrinterPreview1.Add("Capture d'écran")
  • PrinterPreview1.SetBackColor Page, RGB(250, 250, 250), True, RGB(100, 100, 100), 1
  • PrinterPreview1.PaintPicture Page, Picture1.Image, mAUTO, , , , , pmCOPY
  • PrinterPreview1.DrawString Page, "Capture d'écran 1", "Tahoma", 10, True, PrinterPreview1.MarginLeft, PrinterPreview1.MarginTop + PrinterPreview1.PixelsToTwipsY(200), PrinterPreview1.PageWidth, PrinterPreview1.TextHeight(Page, "Tahoma", 10, "Capture d'écran 1"), fCENTER, 0, 0, False, False, False, FW_BLACK, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH, RGB(0, 100, 100)
  • Me.Show
  • DoEvents
  • End Sub
  • Private Sub Form_Resize()
  • PrinterPreview1.Left = 0
  • PrinterPreview1.Top = Command1.Top + Command1.Height + Command1.Top
  • PrinterPreview1.Width = Me.ScaleWidth
  • PrinterPreview1.Height = Me.ScaleHeight - PrinterPreview1.Top
  • End Sub
  • Private Sub PrinterPreview1_Added()
  • Label1.Caption = "Nombre de page: " & CStr(PrinterPreview1.Count)
  • End Sub
' COMMENT UTILISER LE COMPOSANT

Option Explicit

Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
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

Private Sub Command1_Click()
    If CInt(Text1.Text) < 1 Then Text1.Text = "1"
    If CInt(Text1.Text) > PrinterPreview1.Count Then Text1.Text = CStr(PrinterPreview1.Count)
    ' on va à la page désirée
    PrinterPreview1.GoPage CInt(Text1.Text)
End Sub

Private Sub Command2_Click()
    ' on sélectionne toutes les pages
    PrinterPreview1.SelAll
End Sub

Private Sub Command3_Click()
    ' on déselectionne toutes les pages
    PrinterPreview1.UnSelAll
End Sub

Private Sub Command4_Click()
    ' on lance l'impression
    PrinterPreview1.StartPrint
End Sub

Private Sub Command5_Click()
    PrinterPreview1.PrintProperties
End Sub

Private Sub Command6_Click()
    PrinterPreview1.About
End Sub

Private Sub Form_Load()

    Label1.Caption = "Nombre de page: " & CStr(PrinterPreview1.Count)

    ' on prépare l'aperçu avant impression
    PrinterPreview1.Border3D = True
    PrinterPreview1.PageWidth = Printer.Width ' toujours en Twips les coordonnées
    PrinterPreview1.PageHeight = Printer.Height ' toujours en Twips les coordonnées
    PrinterPreview1.MarginLeft = 400 ' toujours en Twips les coordonnées
    PrinterPreview1.MarginTop = 400 ' toujours en Twips les coordonnées
    PrinterPreview1.DrawPageNum = True
    PrinterPreview1.ShowDatetime = True
    PrinterPreview1.PrintQuality = qHIGH
    PrinterPreview1.DocumentName = "Essai d'impression"
    
    Dim Page As Integer
    Dim P As IPictureDisp
    Dim W As Long, H As Long, R As Double
    
    ' on charge une image
    Set P = LoadPicture(App.Path & "\family tux.jpg")
    ' on ajoute une nouvelle page
    Page = PrinterPreview1.Add("PaintPicture Mode : mDEFAULT et  2 x mUSER")
    ' on définit sa couleur de fond
    PrinterPreview1.SetBackColor Page, RGB(255, 255, 255), False
    ' on dessine l'image chargée
    PrinterPreview1.PaintPicture Page, P, mDEFAULT, 0, 0
    ' on charge une image
    Set P = LoadPicture(App.Path & "\Kuantum2 1024-768.jpg")
    ' on calcule sa taille suivant son ratio
    R = P.Height / P.Width
    W = 5000
    H = W * R
    ' on dessine cette image
    PrinterPreview1.PaintPicture Page, P, mUSER, 2000, 3000, W, H, pmINVERT
    ' on charge une image
    Set P = LoadPicture(App.Path & "\usual suspect.jpg")
    ' on calcule sa taille suivant son ratio
    R = P.Height / P.Width
    W = 8000
    H = W * R
    ' on dessine cette image
    PrinterPreview1.PaintPicture Page, P, mUSER, 5000, 6000, W, H

    ' on charge une image
    Set P = LoadPicture(App.Path & "\Big Tux 1280-1024.jpg")
    ' on ajoute une nouvelle page
    Page = PrinterPreview1.Add("PaintPicture Mode : mAUTO, SetBackColor avec Bordure, 2 x DrawString, 3 x DrawLine")
    ' on définit sa couleur de fond
    PrinterPreview1.SetBackColor Page, RGB(230, 233, 236), True, RGB(115, 133, 153), 1
    ' on dessine l'image chargée
    PrinterPreview1.PaintPicture Page, P, mAUTO
    ' on dessine une chaine de caractère
    PrinterPreview1.DrawString Page, "Essai 1", "Tahoma", 14, True, 1000, 1000, 5000, 3000, fLEFT, 0, 0, False, False, False, FW_BOLD, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, vbBlue
    ' on dessine une chaine de caractère
    PrinterPreview1.DrawString Page, "Essai 2" & vbCrLf & "de bob", "Tahoma", 21, True, 3000, 3000, 5000, 3000, fLEFT, 0, 0, True, True, True, FW_THIN, DEFAULT_CHARSET, OUT_DEVICE_PRECIS, CLIP_STROKE_PRECIS, PROOF_QUALITY, VARIABLE_PITCH, vbRed
    ' on dessine une ligne
    PrinterPreview1.DrawLine Page, 1500, 1500, 7000, 7000, vbMagenta, 3
    ' on dessine une ligne
    PrinterPreview1.DrawLine Page, 7000, 7000, 2000, 7000, vbMagenta, 3
    ' on dessine une ligne
    PrinterPreview1.DrawLine Page, 2000, 7000, 2000, 4000, vbMagenta, 3
    
    ' on ajoute une page
    Page = PrinterPreview1.Add("3 x DrawRectangle, DrawRectangle : Rounded, DrawEllipse")
    ' on définit sa couleur de fond
    PrinterPreview1.SetBackColor Page, RGB(255, 255, 255), False
    ' on dessine un rectangle
    PrinterPreview1.DrawRectangle Page, 2000, 3000, 5000, 5000, True, vbYellow, vbBlack, 1
    ' on dessine un rectangle
    PrinterPreview1.DrawRectangle Page, 5000, 6000, 10000, 5000, False, vbBlue
    ' on dessine un rectangle
    PrinterPreview1.DrawRectangle Page, 3500, 4500, 5000, 20000, True, vbGreen, vbWhite, 3
    ' on dessine un rectangle
    PrinterPreview1.DrawRectangle Page, 1000, 1000, 4000, 1800, True, vbMagenta, vbBlack, 1, True, 50
    ' on dessine une ellipse
    PrinterPreview1.DrawEllipse Page, 1500, 1500, 6000, 6000, True, vbCyan, vbRed, 1, pmAND
   
    Picture1.Cls
    Picture1.Width = Screen.Width
    Picture1.Height = Screen.Height
    StretchBlt Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, GetDC(0), 0, 0, Screen.Width, Screen.Height, vbSrcCopy
    Picture1.Refresh
    Page = PrinterPreview1.Add("Capture d'écran")
    PrinterPreview1.SetBackColor Page, RGB(250, 250, 250), True, RGB(100, 100, 100), 1
    PrinterPreview1.PaintPicture Page, Picture1.Image, mAUTO, , , , , pmCOPY
    PrinterPreview1.DrawString Page, "Capture d'écran 1", "Tahoma", 10, True, PrinterPreview1.MarginLeft, PrinterPreview1.MarginTop + PrinterPreview1.PixelsToTwipsY(200), PrinterPreview1.PageWidth, PrinterPreview1.TextHeight(Page, "Tahoma", 10, "Capture d'écran 1"), fCENTER, 0, 0, False, False, False, FW_BLACK, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH, RGB(0, 100, 100)
   
    Me.Show
    DoEvents

End Sub

Private Sub Form_Resize()
    PrinterPreview1.Left = 0
    PrinterPreview1.Top = Command1.Top + Command1.Height + Command1.Top
    PrinterPreview1.Width = Me.ScaleWidth
    PrinterPreview1.Height = Me.ScaleHeight - PrinterPreview1.Top
End Sub

Private Sub PrinterPreview1_Added()
    Label1.Caption = "Nombre de page: " & CStr(PrinterPreview1.Count)
End Sub

Conclusion

Ci dessus le code source de la form de test fournie dans le ZIP (lancer Groupe1.vbg pas Projet1.vbp)
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

16 novembre 2004 15:09:49 :
Correction orthographique

Commentaires et avis

signaler à un administrateur
Commentaire de NISANDSYSTEMS le 16/11/2004 20:12:35

Tres bon travail, seul petit bémole; le zoom intégré.
Pour le reste, chacun sa sauce suivant ce qu'il veut...

10/10

signaler à un administrateur
Commentaire de lumesh le 17/11/2004 09:17:53

Oui pour le zoom je travail dessus mais c'est moins evident.
En fait je suis obligé de revoir le positionnement de chaque page de maniere automatique ce qui me permetterai de reduire les page a taille souhaitée.

Autre bemole, etant des picturebox "dessinée" je suis obligé de zoomer/dezoomer les image avec les apis ce qui fait a force de zoomer/dezoomer, on perd un max de qualité ....

Il faut donc que je revoie une bonne partie du code, mais bon :) c'est en cours !

Merci pour la note :)

signaler à un administrateur
Commentaire de NISANDSYSTEMS le 18/11/2004 10:43:58

Effectivement la qualité risque de se faire rare. le mieux serait d'encapsuler les routines et traitements graphiques via une DLL.

Pour le zoom, tu peux retranscrire tous les parametres du Picturebox,
type height,width etc... via un ctl Image et ensuite appliquer l'effet sur le ctl Picture, qui à mon sens et loin d'etre le meilleur ctl pour la getion de memoire et surtout en VB

signaler à un administrateur
Commentaire de lumesh le 18/11/2004 10:58:30

J'ai pensé aussi faire un espece de language de script, cad que l'OCX traiterai un script de mise en forme ce ki me permetterai de stocker les elements originaux  (tel les images) et de les afficher apres suivant les operations souhaitées:

Avantage, perte de qualité moindre
Incovenient, lenteur de traitement accrue

Mais c'est en reflexion car l'apercu avant impression, c'est super utile mais ca reste du domaine du mystere sous vb6 :/

signaler à un administrateur
Commentaire de NISANDSYSTEMS le 18/11/2004 12:55:21

Pas obligatoire, mais le script est un mauvais exemple,
et surtout la gestion de memoire est totalement inefficace dans ce genre là.

Un exemple parmi tant d'entre;
Envoie vers la DLL, l'image a traiter et non un string ou autre type comme beaucoup font.
A partir de là le traitement peu commencer sans pour autant gener l'application client.

Une fois le traitement terminé; renvoie l'image son application  type picturebox

Je vais me pencher dessus et te tiens au courant
@+



signaler à un administrateur
Commentaire de PROGRAMMIX le 20/11/2004 12:07:34

Projet très intéressant et qu'il ne faudrait pas abandonner...

Par manque de temps, je n'ai pas encore étudier le code, mais je souhaiterais poser quelques questions.

Est-ce que le code permet de choisir l'orientation de l'impression (portrait-paysage) ?
Est-il envisageable de permettre une double utilisation de cette orientation ?  Imaginons un rapport dans lequel on souhaite intégrer un graphique au milieu : le texte serait en portrait et le graphique en paysage.

Autre question, tu "joues" avec les images mais qu'en est-il du texte ?  Pour revenir sur mon idée de rapport, faut-il taper le texte "ligne par ligne" ou le contrôle prend-t-il en charge la gestion d'un texte complet (lignes, paragraphes, interligne...) ?

Au plaisir de te lire...

signaler à un administrateur
Commentaire de PROGRAMMIX le 20/11/2004 12:11:31

Encore une question

Je planche actuellement sur une application de gestion d'horaires.
J'ai coder entièrement l'impression des grilles horaires de manière à avoir un "tableau" avec les horaires du personnel pour une semaine complète.  Au niveau code, il s'agit donc de texte sur lequel je trace des lignes pour réaliser les différentes cases.  
Ton code permet-il de présenter un aperçu avant impression de ces feuilles ?

signaler à un administrateur
Commentaire de lumesh le 20/11/2004 12:49:31

en fait le principe de fonctionnement est tres simple:

l' OCX (dessine) tout ce qui bouge.
Donc pour le texte il prend tout aussi bien les Tabulation que le CRLF. Bien sur il ne gere pas le wordwrap ( ce n'est pas un editeur de texte ) mais tu peux le traiter avant dans ton code.

Pour l'orientation, il gere le portrait et le paysage.

Pour le placement des objets, tu as toutes les coordonées et les marges a ta disposition (sachant que tu les renseignes a l'initialisation).

Pour ta derniere question, comme tu le dis, tu dois tracer des lignes et dessiner du texte donc oui le code a des fonctions rapide pour faire ca.
J'ai noter dans mes idees d'ameliorations, la possibilité de faire des tablos mais ca reste plutot complexe et j'ai quelque peu du mal a negocier une technique relativement simple a utiliser et assez puissante pour faire qqc de sympa (la gestion des cellules c le merdier).

Deplus si ton "tableau" tu le dessine sur ton picture box, il sera tres tres simple de l'imprimer !!

OCX.PaintPicture Page, LaPicDeTonTablo.image, .. ... .....

et ca tu le fait dans le sens que tu veux et tu met le mode mAuto pour que l'ocx le redimmenssionne tout seul au format de la page (format de page directement renseigné a linitialisation du code - dans mon exemple j'ai pris le format de la page actuel de l'imprimante par defaut)

signaler à un administrateur
Commentaire de lumesh le 20/11/2004 12:51:28

Precision dans le code, j'utilise l'api DrawText ce qui permet avec la constante DT_WORDWRAP de geré un pseudo wordwrap mais bon ce n'est pas non plus le pied ....

signaler à un administrateur
Commentaire de PROGRAMMIX le 20/11/2004 16:46:55

Merci pour les infos.

Je tâcherai donc d'éplucher le code plus en avant.

Bonne continuation...

signaler à un administrateur
Commentaire de NoFutur le 06/05/2005 11:22:53

J'ai quelques questions par rapport à l'ensemble de vos commentaires et sur cette excellente source.

J'ai crée moi aussi un état d'impression moins complet que celui-ci mais suffisant pour mon utilisation personnel, au vu des premiers commentaires j'ai noté apparement qu'il est préférable d'envoyer directement une image à l'impression plutot que tout dessiner ce que je fais habituellement car plus simple pour moi à gérer.
Mais lorsque cette image est le résultat du contenu d'un picturebox dans lequel j'ai tout dessiné (police, rectangle, image de fond etc...) je me rend très vite compte lors de l'impression que la police est pixelisée à mort et que le résultat n'est pas toujours celui espéré.

J'en viens donc à ma question est-il possible d'appliquer un effet de lissage sur une image que l'on souhaite imprimer au moyen de strechblt ou de tout autre méthode ??

Dernière chose, qui sait comment gérer ces foutus marges d'impression car bien que l'imprimante en ai besoin, il existe quand même des formats de papier (genre étiquettes) dont les dimensions sont nettement supérieures aux marges de toutes ces imprimantes ??

Sinon j'allais oublié le plus important 10/10 à cette source quand même :-)

@plus

signaler à un administrateur
Commentaire de thierrybardin le 07/09/2005 14:19:23

Vraiment pratique et facile d'utilisation.
Petite question : peux t'on imprimer un texte avec un FOND blanc (genre on a definit le setbackcolor et on souhaite ecrire un texte mais sans le fond (comme un formulaire par ex.)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.