VB6 menu enregistrer sous

Résolu
dapilaplap Messages postés 8 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 25 juillet 2007 - 28 juin 2007 à 10:52
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 28 juin 2007 à 12:35
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

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
28 juin 2007 à 12:05
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.
3
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 juin 2007 à 11:18
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
1
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
28 juin 2007 à 11:27
Ben si tu nous montre pas le code que tu utilise, on va pas pouvoir faire grand chose !
0
dapilaplap Messages postés 8 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 25 juillet 2007
28 juin 2007 à 11:50
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dapilaplap Messages postés 8 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 25 juillet 2007
28 juin 2007 à 12:14
Merci!
0
dapilaplap Messages postés 8 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 25 juillet 2007
28 juin 2007 à 12:19
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
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
28 juin 2007 à 12:35
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).
0