Copie en image d'un gadget.

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Copie en image d'un gadget.

Message par kernadec »

cool alors ...oui comment faire... :mrgreen:

cordialement
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Copie en image d'un gadget.

Message 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.





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Copie en image d'un gadget.

Message 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
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Copie en image d'un gadget.

Message par venom »

Bon et bien voilà c'est régler :D







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Copie en image d'un gadget.

Message par kernadec »

bonjour
merci, Soldat Inconnu
vraiment bien. un retour au source ...

cordialement
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Copie en image d'un gadget.

Message par GallyHC »

Bonjour tous,

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

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: Copie en image d'un gadget.

Message par Patrick88 »

simple et efficace...

je garde.

pat
Répondre