VB6 menu enregistrer sous

[Résolu]
Signaler
Messages postés
8
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
25 juillet 2007
-
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
Bonjour,
   Je cherche a créer un menu fichier "enregistrer sous" avec lequel  mon programme enregistre la page sous forme d'image, c'est a dire juste l'apparance qu'il a lors de l'enregistrement. J'utilise la boite de dialogue CommonDialog et j'arrive a enregistrer un fichier (j'arrive meme a l'enregistrer ou je veu et avec le nom que je veu :-), mais bien sur ce n'est pas une image :-(
   Est-ce possible? Si oui, quelqu'un peut il me donner une solution pour le faire?
Merci d'avance.
Dapilaplap

7 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
125
ton code est à moitié correct : il dois bien te créer le fichier, mais le Print #1 lui ne doit pas marcher !

Il te faut faire un BitBlt (fonction de l'API) ou tout autre fonction pour récupèrer l'image de ta form et enregistrer cette image, et non le form lui même : le form est un objet, je pense qu'il plante sur ton print non ?

Comme le disais notre ami jacques, regarde les sources de capture d'écran et inspire toi de celles-ci.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bonjour,


Si c'est la Form que tu veux imprimer, tu as pour celà l'un des exemples de screenshots que tu trouveras dans les sources déposées sur ce forum.
"Récolte cette image dans une PictureBox (j'espère que tu développes réellement sous VB6 ...la présente section...) puis sauvegarde cette image par l'instruction SavePicture de VB6.
Si ce n'est pas ta Form que tu veux imprimer, il va falloir quer tu expliques ce que c'est très exactement
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
125
Ben si tu nous montre pas le code que tu utilise, on va pas pouvoir faire grand chose !
Messages postés
8
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
25 juillet 2007

Desolé.............
Voila le code, je sais meme pas si c'est la bonne demarche!

Private Sub mnusaveas_Click()
dlgCommon.Flags = cdlOFNOverwritePrompt + cdlOFNPathMustExist
dlgCommon.Filter = "Fichiers image(*.gif;*.ico)|*.gif;*.ico"
dlgCommon.ShowSave
Open dlgCommon.FileName For Output As #1
Print #1, frmAcceuil  'et la je sais pas ce que je doit mettre
Close #1
blnModif = False
blnAnnEnr = False
End Sub
Messages postés
8
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
25 juillet 2007

Merci!
Messages postés
8
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
25 juillet 2007

oups! j'ai oublié de repondre aux questions.....
oui avec juste le nom du form ca plante, mais apparament ca marche pour enregistrer des fichier text. J'ai trouvé ca dans un bouquin, c'était d'ailleurs le seul exemple de commondialog.....
Merci encore a vous deux
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
125
oui ca marche très bien pour du texte puisque le Print enregistre du texte uniquement !

Pour enregistrer des images, il faut passer par la fonction SavePicture qui prend en paramètre un stdPicture, et non un Form, donc c'est pour cà : regarde dans les sources de screenshot pour voir comment il récupère un stdPicture à partir d'une copie d'écran d'une forme (sûrement l'utilisation de BitBlt en parallèle à un PictureBox).