Richtextbox

Résolu
tonylivingston Messages postés 11 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 9 mai 2006 - 7 mars 2006 à 19:15
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 - 9 mars 2006 à 14:14
Bonjour,

Je rencontre un
probléme avec mon appli qui est un systeme d'etiquettage fonctionnant
suivant les données reçuent via rs232 d'une balance:



mon
probleme est à l'impression de l'etiquette, en fait il y a un
richtextbox et deux images(logos) picturebox1 et picturebox2.



Le richtextbox s'imprime bien, mais mes logos sont absents ou coupé.

J'ai l'impression que le richtextbox recouvre les logos, alors qu'aucune ligne d'ecriture n'est presente à cet endroit.

Voici le code de l'impression.





Dim Impr As Printer

Set Impr = Printer



Impr.ScaleMode = vbMillimeters 'Coordonées en mm

Impr.Print RichTextBox1.Text

RichTextBox1.SelStart = 0

RichTextBox1.SelLength = Len(RichTextBox1.Text)

RichTextBox1.SelPrint Impr.hDC




'impression de logosociete à 60mm en partant de la gauche de
feuille et 17mm en partant du haut sur (25mm de large et 20 de haut)

Impr.PaintPicture logosociete.Picture, 60, 17, 25,20


'impression de logosociete à 60mm en partant de la gauche de feuille et
35mm en partant du haut sur (25mm de large et 20 de haut)

Impr.PaintPicture logosan.Picture,60,35,25,20

Impr.EndDoc



Si vous avez une solution, merci de m'aider sachant que je ne veus pas mettre une image dans le richtextbox mais vraiment l'imprimer séparement sur l'etiquette, cela fait maintenant 1 semaine que je galère.

3 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
7 mars 2006 à 20:21
Bonsoir,
Ce n'est pas la peine de reposter votre question plusieurs fois sur le forum, si tu n'as pas de réponse c'est simplement que personne ne la connait...

Je te propose un bout de code que je n'ai pas pu tester....plus d'imprimante.

'Api + constantes
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long


Private Const WM_PAINT = &HF
Private Const WM_PRINT = &H317
Private Const PRF_CLIENT = &H4&
Private Const PRF_CHILDREN = &H10&
Private Const PRF_OWNED = &H20&

Dans ton bouton imprimer par exemple
8<-----------------------------------------------------

Dim rv As Long

Dim pbox As PictureBox
pbox = Picture1

Impr.ScaleMode = vbMillimeters 'Coordonées en mm
Printer.Print RichTextBox1.Text
RichTextBox1.SelStart = 0
RichTextBox1.SelLength = Len(RichTextBox1.Text)
RichTextBox1.SelPrint Impr.hDC

With pbox
.AutoRedraw = True

'Dessine le controle picture1
rv = SendMessage(.hwnd, WM_PAINT, .hDC, 0)
rv = SendMessage(.hwnd, WM_PRINT, .hDC, PRF_CHILDREN Or PRF_CLIENT Or PRF_OWNED)

'Rafraichit l'image
.Picture = .Image

'Copie de l'image vers l'imprimante
Printer.PaintPicture .Picture, 60, 17, 25,20

Printer.EndDoc
End With
8<-----------------------------------------------------

Bon courage
3
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
9 mars 2006 à 14:14
Re,
Je passe la partie avec le richtextbox....

pbox est notre picturebox temporaire cela évite d'utiliser TaPicturebox.

rv = SendMessage(.hwnd, WM_PAINT, .hDC, 0)
Ont envoit une demande pour dessiner une partie de la fenetre de ton appli (pbox).
- pBox.hwnd: renvoie descripteur de ton objet pbox (tout objet dans le système possède un descripteur)
- pBox.hDC: renvoie un descripteur vers le contexte du périphérique de l'objet
Info: =/library/en-us/gdi/pantdraw_88ac.asp http://msdn.microsoft.com/library/default.asp?url= /library/en-us/gdi/pantdraw_88ac.asp

rv = SendMessage(.hwnd, WM_PRINT, .hDC, PRF_CHILDREN Or PRF_CLIENT Or PRF_OWNED)
Ont dessine dans notre pbox.
Info: =/library/en-us/gdi/pantdraw_3qwk.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_3qwk.asp

.Picture = .Image
On met à jour le nouveau dessin.
3
tonylivingston Messages postés 11 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 9 mai 2006
8 mars 2006 à 21:42
Bonjour et merci pour la réponse

Te serait il possible de m'expliquer le code que tu m'as fourni,
je n'ai pas un super niveau en vb et il serait dommage de
ne faire simplement que du copier coller.

Je ne l'ai pas pas encore testé, merci de bien vouloir m'expliquer.



Merci d'avance
0
Rejoignez-nous