Forums développeurs windev

Version complète : [Wd10] Impression Ecran
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Bonjour,

je voudrais savoir s'il est possible de faire l'impression écran d'une fenêtre en cours d'ouverture.

Je voudrais pouvoir par la suite sauvegarder cette image dans un fichier!!!

Quelle est la démarche à suivre !!!

D'avance Merci.
J'ai trouvé :

dCopieImage(CopieEcran,MonFichierImage)

Ceci dit, serait-il possible de faire simplement la copie de la fenêtre en cours de la même manière que la copie écran car je n'ai pas trouvé cette fonction dans l'aide !!!
Rapidement et sans verification
http://windevapi.free.fr/forum1.php?idr=...ture=1#735

Citation :Mnémosyne Posté le : 06/07/2003 07:45:01

Bonjour à toutes et à tous,

J'aurais aimé pouvoir "capturer" à la façon copie d'écran la fenetre (ou ici le champ) active (comme lorsque nous utilisons ALT + IMP ECR ) et d'en appliquer une réduction (de l'ordre du timbre poste:-) afin de créer une historique des pages web visitées mais affichées comme sous WINDEV (arborescence des menus, fenetres,...)

Si WINDEV le fait avec les fenetres que nous créons... cela doit être possible (c'est ce que je me dis :-))

smack de Mnémosyne.

°¨¨ JL ¨¨° Posté le : 07/07/2003 13:47:48

Salut,

Pour faire une copie du champ activex1 en miniature :

Il te faut un champ image (invisible) dans ta fenêtre (im1 dans l'ex. suivant)


hwnd est un entier =Handle("im1") // handle du champ image
hwndfen est un entier = Handle(ActiveX1) // handle de la fenêtre ou du champ à copier

hdcScreen est un entier = AppelDLL32("user32","GetWindowDC" , hwndfen)

rect est composé de
l est un entier
t est un entier
r est un entier
b est un entier
FIN
AppelDLL32("user32","GetWindowRect" , hwndfen , &rect)

HORZRES est un entier = rect.r - rect.l
VERTRES est un entier = rect.b - rect.t
Im1..X=0
Im1..Y=0
Im1..Largeur=HORZRES / 4 //25%
Im1..Hauteur=VERTRES / 4 //25%

dcim1 est un entier =dDébutDessin("im1")

API("gdi32","StretchBlt", dcim1, 0, 0, Im1..Largeur, Im1..Hauteur, hdcScreen, 0, 0, HORZRES, VERTRES, 0x00CC0020)

dSauveImageJPEG("im1","copieecr.jpg")
AppelDLL32("user32","ReleaseDC",hwndfen,hdcScreen)
dFinDessin()

A+
Merci pour ta réponse, je vais essayer cela dans la journée et essaierais de vous tenir au courant
Ok Ca marche.


Ensuite, je voudrais par contre pouvoir imprimer ce fichier image dans une page au format paysage, or chaque fois que je lance l'impression, j'ai une feuille blanche...

Voici mon Code actuel :
Code :
//** Déclaration des Variables **
hwnd est un entier     //** Handle du champ image **
hwndfen est un entier     //** Handle de la fenêtre ou du champ à copier **
hdcScreen est un entier
Ch_AdresseImage est une chaîne     //** Adresse de l'aimage créée **
rect est composé de
    l est un entier
    t est un entier
    r est un entier
    b est un entier
FIN
HORZRES est un entier
VERTRES est un entier
dcim1 est un entier

//** Initialisation des Variables **
Ch_AdresseImage = G_Ch_AdressePlanning + "\" + CbxType.ColCodeType
hwnd = Handle(ImgCopieEcran)
hwndfen = Handle(FrmPlanningReservation)
hdcScreen = AppelDLL32("user32","GetWindowDC" , hwndfen)

//** Création de l'aperçu **
AppelDLL32("user32","GetWindowRect" , hwndfen , &rect)
HORZRES = rect.r - rect.l
VERTRES = rect.b - rect.t
dcim1 = dDébutDessin(ImgCopieEcran)
API("gdi32","StretchBlt", dcim1, 0, 0, ImgCopieEcran..Largeur, ImgCopieEcran..Hauteur, hdcScreen, 0, 0, HORZRES, VERTRES, 0x00CC0020)

//** Création de l'image **
dSauveImageJPEG(ImgCopieEcran,Ch_AdresseImage,100)
AppelDLL32("user32","ReleaseDC",hwndfen,hdcScreen)

//** On déclara la fin du dessin **
dFinDessin()

//** On informe la création de l'aperçu et on demande si on veut l'ouvrir **
SELON Dialogue("La création du planning de la semaine pour : %1 s'est bien déroulée", CbxType.ColNomType)
    //** Ouvrir le fichier créée **
    CAS 1 :
        LanceAppliAssociée(Ch_AdresseImage)
    //** Imprimer le planning **
    CAS 2 :
        iImprimeImage(Ch_AdresseImage,0,0,100)
        iFinImprime()
    //** Ne rien Faire **
    CAS 3 :
        //** On ne fait rien **
FIN