Dans une appli VB6.0, je veux imprimer une image avec un texte au milieu. La
méthode suivante marche bien sauf que le fond du texte imprimé efface l'image
! Pouvez-vous m'aider ?
Sur ma feuille VB, j'ai un control Image (Image1) et un CommandButton (cmd1)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal B.
Bonjour,
Il y a effectivement un bug avec la propriété FontTransparent de l'objet Printer. Elle ne fonctionne pas toujours. Elle peut facilement être remplacé par une fonction API dont voici un exemple:
Private Declare Function SetBkMode Lib "gdi32" _ (ByVal hdc As Long, ByVal nBkMode As Long) As Long
Private iBKMode as Long Private Const TRANSPARENT = 1 Private Const OPAQUE = 2
iBKMode = SetBKMode(Printer.Hdc, TRANSPARENT)
Amicalement, Pascal B.
"jean saint jalmes" wrote in message news: | Bonjour, | | Dans une appli VB6.0, je veux imprimer une image avec un texte au milieu. La | méthode suivante marche bien sauf que le fond du texte imprimé efface l'image | ! Pouvez-vous m'aider ? | | Sur ma feuille VB, j'ai un control Image (Image1) et un CommandButton (cmd1) | | Private cmd1_Click() | | Dim Texte as String | | Image1.Picture = LoadPicture("my picture") | Printer.FontTransparent = True | Printer.PaintPicture Image1.Picture,0,0,Image1.Width,Image1.Height | Texte = "Bonjour" | Printer.CurrentX = (Image1.Width - Printer.TextWidth(Texte)) /2 | Printer.CurrentY = (Image1.Height - Printer.TextHeight(Texte))/2 | Printer.print Texte | Printer.EndDoc | end sub |
Bonjour,
Il y a effectivement un bug avec la propriété FontTransparent de l'objet Printer.
Elle ne fonctionne pas toujours. Elle peut facilement être remplacé par une fonction API
dont voici un exemple:
Private Declare Function SetBkMode Lib "gdi32" _
(ByVal hdc As Long, ByVal nBkMode As Long) As Long
Private iBKMode as Long
Private Const TRANSPARENT = 1
Private Const OPAQUE = 2
iBKMode = SetBKMode(Printer.Hdc, TRANSPARENT)
Amicalement,
Pascal B.
"jean saint jalmes" <jeansaintjalmes@discussions.microsoft.com> wrote in message
news:041F6535-4A15-427F-BA8B-A8BA0D5C37B2@microsoft.com...
| Bonjour,
|
| Dans une appli VB6.0, je veux imprimer une image avec un texte au milieu. La
| méthode suivante marche bien sauf que le fond du texte imprimé efface l'image
| ! Pouvez-vous m'aider ?
|
| Sur ma feuille VB, j'ai un control Image (Image1) et un CommandButton (cmd1)
|
| Private cmd1_Click()
|
| Dim Texte as String
|
| Image1.Picture = LoadPicture("my picture")
| Printer.FontTransparent = True
| Printer.PaintPicture Image1.Picture,0,0,Image1.Width,Image1.Height
| Texte = "Bonjour"
| Printer.CurrentX = (Image1.Width - Printer.TextWidth(Texte)) /2
| Printer.CurrentY = (Image1.Height - Printer.TextHeight(Texte))/2
| Printer.print Texte
| Printer.EndDoc
| end sub
|
Il y a effectivement un bug avec la propriété FontTransparent de l'objet Printer. Elle ne fonctionne pas toujours. Elle peut facilement être remplacé par une fonction API dont voici un exemple:
Private Declare Function SetBkMode Lib "gdi32" _ (ByVal hdc As Long, ByVal nBkMode As Long) As Long
Private iBKMode as Long Private Const TRANSPARENT = 1 Private Const OPAQUE = 2
iBKMode = SetBKMode(Printer.Hdc, TRANSPARENT)
Amicalement, Pascal B.
"jean saint jalmes" wrote in message news: | Bonjour, | | Dans une appli VB6.0, je veux imprimer une image avec un texte au milieu. La | méthode suivante marche bien sauf que le fond du texte imprimé efface l'image | ! Pouvez-vous m'aider ? | | Sur ma feuille VB, j'ai un control Image (Image1) et un CommandButton (cmd1) | | Private cmd1_Click() | | Dim Texte as String | | Image1.Picture = LoadPicture("my picture") | Printer.FontTransparent = True | Printer.PaintPicture Image1.Picture,0,0,Image1.Width,Image1.Height | Texte = "Bonjour" | Printer.CurrentX = (Image1.Width - Printer.TextWidth(Texte)) /2 | Printer.CurrentY = (Image1.Height - Printer.TextHeight(Texte))/2 | Printer.print Texte | Printer.EndDoc | end sub |
christophe-pasde
Bonjour,
sic MSDN : << Toute modification apportée à la propriété FontTransparent au moment de l'exécution est sans effet sur le texte et les graphiques déjà dessinés dans un objet Form, Printer ou un contrôle PictureBox. <<
Au vu de votre code ça ne semble pas être le cas. Mais ... Faite le test en dessinant le texte et l'image dans une form ou un picturebox. En inversant les dessins, d'abord le texte après l'image. Logiquement si vous dessinez correctement dans un picturebox ça ne devrait pas poser de pbs avec l'imprimante, et les tests couterons moins cher en encre.
Christophe
jean saint jalmes a écrit :
Bonjour,
Dans une appli VB6.0, je veux imprimer une image avec un texte au milieu. La méthode suivante marche bien sauf que le fond du texte imprimé efface l'image ! Pouvez-vous m'aider ?
Sur ma feuille VB, j'ai un control Image (Image1) et un CommandButton (cmd1)
sic MSDN :
<<
Toute modification apportée à la propriété FontTransparent au moment de
l'exécution est sans effet sur le texte et les graphiques déjà dessinés
dans un objet Form, Printer ou un contrôle PictureBox.
<<
Au vu de votre code ça ne semble pas être le cas.
Mais ...
Faite le test en dessinant le texte et l'image dans une form
ou un picturebox.
En inversant les dessins, d'abord le texte après l'image.
Logiquement si vous dessinez correctement dans un picturebox ça ne
devrait pas poser de pbs avec l'imprimante, et les tests couterons moins
cher en encre.
Christophe
jean saint jalmes a écrit :
Bonjour,
Dans une appli VB6.0, je veux imprimer une image avec un texte au milieu. La
méthode suivante marche bien sauf que le fond du texte imprimé efface l'image
! Pouvez-vous m'aider ?
Sur ma feuille VB, j'ai un control Image (Image1) et un CommandButton (cmd1)
sic MSDN : << Toute modification apportée à la propriété FontTransparent au moment de l'exécution est sans effet sur le texte et les graphiques déjà dessinés dans un objet Form, Printer ou un contrôle PictureBox. <<
Au vu de votre code ça ne semble pas être le cas. Mais ... Faite le test en dessinant le texte et l'image dans une form ou un picturebox. En inversant les dessins, d'abord le texte après l'image. Logiquement si vous dessinez correctement dans un picturebox ça ne devrait pas poser de pbs avec l'imprimante, et les tests couterons moins cher en encre.
Christophe
jean saint jalmes a écrit :
Bonjour,
Dans une appli VB6.0, je veux imprimer une image avec un texte au milieu. La méthode suivante marche bien sauf que le fond du texte imprimé efface l'image ! Pouvez-vous m'aider ?
Sur ma feuille VB, j'ai un control Image (Image1) et un CommandButton (cmd1)