Imprimer selection imprimante??? [Résolu]

Messages postés
47
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
18 septembre 2009
- 27 sept. 2004 à 09:16 - Dernière réponse :
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Dernière intervention
8 janvier 2014
- 27 sept. 2004 à 11:37
bonjour

en vb6

j'ai le contenu d'une richtextbox à imprimer

cboulas m'a proposer ce code (merci bcp cboulas et vous tous aussi)

frmMain.RichTextBox1.SelStart = 0
frmMain.RichTextBox1.SelLength = Len(frmMain.RichTextBox1.Text)
frmMain.RichTextBox1.SelPrint (Me.hDC)

mais cela ne fonctionne pas, cela aurait été trop facile, ne faut t'il pas selectionner l'imprimante avant et a koi corrrespond la variable (Me.hDC) (en debug elle avait une valeur de 8302)

merci de votre aide
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Dernière intervention
8 janvier 2014
- 27 sept. 2004 à 10:59
3
Merci
Voici ce que j'ai trouver dans la MSDN

SelPrint, méthode
      
Envoie le texte formaté dans un contrôle Éditeur RTF (RichTextBox) vers un périphérique d'impression.

Syntaxe

object.SelPrint(hdc)

La syntaxe de la méthode SelPrint comprend les éléments suivants :

Élément Description 
object Expression d'objet qui correspond à la valeur d'un objet figurant dans la rubrique "Application". 
hdc Contexte de périphérique sur lequel sera imprimé le contenu du contrôle. 

Remarques

Si vous sélectionnez du texte dans le contrôle RichTextBox, la méthode SelPrint envoie uniquement ce texte au périphérique cible. Si vous ne sélectionnez pas de texte, elle envoie la totalité du contenu du contrôle RichTextBox au périphérique spécifié.

La méthode SelPrint n'imprime pas le texte extrait du contrôle RichTextBox, mais envoie au périphérique une copie pour impression du texte formaté. Vous pouvez, par exemple, envoyer le texte à l'objet Printer avec le code suivant :

RichTextBox1.SelPrint(Printer.hDC)

Vous remarquerez que la propriété hDC de l'objet Printer est utilisée pour spécifier la valeur du contexte de périphérique de la méthode SelPrint.

Note   Pour que l'objet Printer soit désigné comme destination du texte extrait du contrôle RichTextBox, vous devez d'abord initialiser le contexte de périphérique de l'objet Printer en imprimant par exemple une chaîne de longueur nulle.


SelPrint, méthode, exemple
Cet exemple imprime un texte formaté dans un contrôle Éditeur RTF (RichTextBox). Pour tester cet exemple, placez un contrôle RichTextBox, CommonDialog et CommandButton dans une feuille. Collez le code suivant dans l'événement Click du contrôle CommandButton, puis exécutez l'exemple.

Private Sub Command1_Click()
   CommonDialog1.Flags = cdlPDReturnDC + cdlPDNoPageNums
   If RichTextBox1.SelLength = 0 Then
      CommonDialog1.Flags = CommonDialog1.Flags + cdlPDAllPages
   Else
      CommonDialog1.Flags = CommonDialog1.Flags + cdlPDSelection
   End If
   CommonDialog1.ShowPrinter
   Printer.Print ""
   RichTextBox1.SelPrint CommonDialog1.hDC
End Sub


Chris...
Firstruner

Merci cboulas 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Dernière intervention
8 janvier 2014
- 27 sept. 2004 à 09:40
0
Merci
En fait la sélection d'imprimante ce fait avec le contrôle :

CommonDialog.showprinter

Chris...
Firstruner
Messages postés
47
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
18 septembre 2009
- 27 sept. 2004 à 10:21
0
Merci
ect le meme commondialog que celui utilisé pour ouvrir et enregistrer les fichier

jai tenté cela en remplacant showopen par showprinter mais il ne se passe rien

With dlgCommonDialog
'.InitDir = chemin
.DialogTitle = "Ouvrir"
.CancelError = False
'.Filter = "Tous les fichiers (*.*)|*01.cnc"
.ShowPrinter
' If Len(.FileName) = 0 Then
' Exit Sub
' End If
' sFile = .FileName
End With

que faire????
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Dernière intervention
8 janvier 2014
- 27 sept. 2004 à 10:46
0
Merci
Le 'End With' est mal placer.

With dlgCommonDialog
.InitDir = chemin
.DialogTitle = "Ouvrir"
.CancelError = False
.Filter = "Tous les fichiers (*.*)|*01.cnc"
End With

dlgCommonDialog.ShowPrinter

If Len(dlgCommonDialog.FileName) = 0 Then
Exit Sub
End If
sFile = .FileName

Chris...
Firstruner
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Dernière intervention
8 janvier 2014
- 27 sept. 2004 à 10:46
0
Merci
Le 'End With' est mal placer.

With dlgCommonDialog
.InitDir = chemin
.DialogTitle = "Ouvrir"
.CancelError = False
.Filter = "Tous les fichiers (*.*)|*01.cnc"
End With

dlgCommonDialog.ShowPrinter

If Len(dlgCommonDialog.FileName) = 0 Then
Exit Sub
End If
sFile = dlgCommonDialog.FileName

Chris...
Firstruner
Messages postés
47
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
18 septembre 2009
- 27 sept. 2004 à 11:21
0
Merci
merci cboulas pour l'info

voila ce que g fait pour que cela fonctionne

Printer.Print ""
frmMain.RichTextBox1.SelStart = 0
frmMain.RichTextBox1.SelLength = Len(frmMain.RichTextBox1.Text)
frmMain.RichTextBox1.SelPrint (Printer.hDC)

par contre un dernier petit souci mon imprimante eest configuré par defaut en paysage, je ne veux pas modifier la config, comment imprimer en portrait
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Dernière intervention
8 janvier 2014
- 27 sept. 2004 à 11:35
0
Merci
Utilise :

printer.Orientation = vbPRORPortrait


Chris...
Firstruner
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Dernière intervention
8 janvier 2014
- 27 sept. 2004 à 11:37
0
Merci
Pour info : Hdc

hDC, propriété

Renvoie undescripteur fourni par l'environnement d'exploitation Microsoft Windows pour lecontexte de périphérique d'un objet.

Syntaxe

object.hDC

L'espace réservé object représente uneexpression d'objet qui prend la valeur d'un objet figurant dans la rubrique "Application".

Remarques

La propriété hDC est un descripteur de contexte de périphérique dans l'environnement d'exploitation Microsoft Windows. Le système d'exploitation gère l'affichage en affectant un contexte de périphérique à l'objet Printer, à chaque feuille et à chaque contrôle PictureBox d'une application. Vous pouvez utiliser la propriété hDC pour faire référence au descripteur associé au contexte de périphérique d'un objet, ce qui vous permet de transmettre une valeur aux appels de l'API de Windows.

Dans le cas d'un contrôle CommonDialog, cette propriété renvoie un contexte de périphérique pour l'imprimante sélectionnée dans la boîte de dialogue Impression lorsque l'indicateur cdlReturnDC est défini, ou un contexte d'information lorsque l'indicateur cdlReturnIC est défini.

Note   Comme la valeur de la propriété hDC peut changer pendant l'exécution d'un programme, n'enregistrez pas la valeur renvoyée dans une variable ; utilisez plutôt la propriété hDC chaque fois que nécessaire.

La propriété AutoRedraw peut provoquer une modification de la propriété hDC. Si la valeur de la propriété AutoRedraw est True pour une feuille ou un conteneur PictureBox, hDC agit comme un descripteur de contexte de périphérique dugraphique permanent (équivalant à la propriété Image). Lorsque la valeur de la propriété AutoRedraw est False, hDC devient la valeur réelle de la fenêtre Feuille ou du conteneur PictureBox. La valeur de la propriété hDC peut changer pendant l'exécution d'un programme, quelle que soit la valeur de la propriété AutoRedraw.

Si la valeur False est affectée à la propriété HasDC, un nouveau contexte de périphérique sera créé par le système et la valeur de la propriété hDC changera à chaque appel.


Chris...
Firstruner

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.