27/04/2024
Windev et les Api WindowsNb de visiteurs en ligne : 2
>> Introduction << >> Codes et Forum << >> Download <<


Rubrique : 2 - Windev 7x       Sujet : miniature d'une fenetre ou d'une page web
Auteur Message
 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+

 mnemosyne Posté le : 08/07/2003 15:41:52


merci JL... c'est impeccable !!!

                                   je suis épatée ! BRAVO...

 Mnémosyne Posté le : 08/07/2003 16:27:49


j'ai cependant des "couacs" car j'ai fait un dCopieImage vers un champ image visible et la vue réduite est décalée par rapport  à la page affichée (c'est la précédente qui s'affiche et le champ ne se met pas à jour automatiquement...).

             Merci J.L.

 °¨¨ JL ¨¨° Posté le : 08/07/2003 17:48:51


Re,

Hum... je ne vois pas de dcopieimage dans mon code moi  

Est-ce que l'image sauvegardée est également décalée ?

A+

 Mnémosyne Posté le : 08/07/2003 18:21:33


Exactement, l'image sauvegardée est décalée (ce n'est pas celle qui est affichée mais la précédente quand il y en a (blanc au lancement de l'appli)...

J'ai juste ajouté à ton code la procédure dCopieImage pour copier le champ im1 (invisible) à un autre champ image visible juste après la fonction de sauvegarde sur disque...


Détail : la procédure locale est appelée à chaque évenement NavigateComplete2



fonctionne cependant correctement quand je force l'appel de la procédure par un clic sur le champ image...


                                                    Smacks Mnémo.

 Mnémosyne Posté le : 08/07/2003 21:06:33


Le problème semble venir de l'utilisation du cache des pages web...
l'évemenent NavigateComplete2 est envoyé directement (dans le cas de ma 'goHome') et la procédure renvoie une première fois une page blanche... le reste est décalé....

>> Poster un message dans un NOUVEAU sujet.
>> Poster un message dans ce sujet.