Page 2 sur 2

Re: Copie en image d'un gadget.

Publié : jeu. 05/août/2010 22:00
par kernadec
cool alors ...oui comment faire... :mrgreen:

cordialement

Re: Copie en image d'un gadget.

Publié : jeu. 05/août/2010 22:14
par venom
comme ceux-ci par exemple :

Code : Tout sélectionner

;- Window Constants
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
Enumeration
  #Button_0
EndEnumeration

Procedure screenshot()
;------------ verifie la taille de l'ecran ----------
If ExamineDesktops()
 Largeur = DesktopWidth(0)
 Hauteur = DesktopHeight(0)
EndIf
;---------- fin verifie la taille de l'ecran --------

;---------- ont fait une simulation de touche imprime ecran --------
 DC = GetDC_(0)
  CreateImage(0, 155, 45);<= ont donne la taille du bouton
   Dessin = StartDrawing(ImageOutput(0))
    BitBlt_(Dessin, 0, 0, Largeur, Hauteur, DC, WindowX(#Window_0)+20, WindowY(#Window_0)+40, #SRCPAINT | $40000000) ;<= ont renvoie la taille de l'ecran avec Largeur et Hauteur, ont donne la position x de la fenetre grace a WindowX(#Window_0) idem pour y
     StopDrawing()   
UseJPEGImageEncoder()
 SaveImage(0, "c:/screenshot.jpg", #PB_ImagePlugin_JPEG);<= et on enregistre
;---------- fin de simulation de touche imprime ecran -------- 
EndProcedure

  window=OpenWindow(#Window_0, 0, 0, 600, 300, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
   ButtonGadget(#Button_0, 20, 20, 150, 40, "enregistrer le bouton")

  Repeat
   EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
       
       Case #Button_0
        screenshot()
         
      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
mais le problème reste que GallyHC va devoir s'amuser a référencer tous les gadgets qui veut imprimé.
bien sur windows seulement.





@++

Re: Copie en image d'un gadget.

Publié : ven. 06/août/2010 9:10
par Le Soldat Inconnu
MultiOS :mrgreen:
Que des fonctions PB, c'est tellement simple que personne n'y a songé :lol:

Attendez 2 secondes pour voir apparaître la copie

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 4.50
;
; Explication du programme :
; Pour faire des programmes de test rapidement, il ne reste qu'a rajouter les gadgets et la gestion des évènements.

; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 300, 300, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0
  End
EndIf

StickyWindow(0, 1)

ButtonGadget(0, 5, 10, 50, 25, "Coucou")

; On attend pour permettre l'affichage
For x = 1 To 20
	While WindowEvent()
		
	Wend
	Delay(100)
Next

; Zone mémoire pour la copie
Dim Image.l(GadgetWidth(0) - 1, GadgetHeight(0) - 1)

; On dessine sur la fenêtre pour copier le bouton
StartDrawing(WindowOutput(0))
	x1 = GadgetX(0)
	x2 = x1 + GadgetWidth(0) - 1
	y1 = GadgetY(0)
	y2 = y1 + GadgetHeight(0) - 1
	For x = x1 To x2
		For y = y1 To y2
			Image(x - x1, y - y1) = Point(x, y)
		Next
	Next
StopDrawing()

; On crée l'image du gadget
CreateImage(1, GadgetWidth(0), GadgetHeight(0))
StartDrawing(ImageOutput(1))
	For x = 0 To GadgetWidth(0) - 1
		For y = 0 To GadgetHeight(0) - 1
			Plot(x, y, Image(x, y))
		Next
	Next
StopDrawing()

; On affiche l'image
ImageGadget(1, 50, 50, ImageWidth(1), ImageHeight(1), ImageID(1))


Repeat
  Event = WaitWindowEvent()
  
  Select Event
		Case #PB_Event_Menu
      Select EventMenu() ; Menus
          
			EndSelect
      
		Case #PB_Event_Gadget
      Select EventGadget() ; Gadgets
          
			EndSelect
	EndSelect
  
Until Event = #PB_Event_CloseWindow

Re: Copie en image d'un gadget.

Publié : ven. 06/août/2010 9:34
par venom
Bon et bien voilà c'est régler :D







@++

Re: Copie en image d'un gadget.

Publié : ven. 06/août/2010 10:12
par kernadec
bonjour
merci, Soldat Inconnu
vraiment bien. un retour au source ...

cordialement

Re: Copie en image d'un gadget.

Publié : ven. 06/août/2010 13:15
par GallyHC
Bonjour tous,

Le Soldat Inconnu> une bonne piste a creuse, merci.

Cordialement,
GallyHC

Re: Copie en image d'un gadget.

Publié : sam. 07/août/2010 11:59
par Patrick88
simple et efficace...

je garde.

pat