Page 1 sur 1

mettre les gadget en mode XP comment on fait ?

Publié : ven. 29/juil./2011 14:34
par dayvid
comment on fait pour crée des gadget mais les metre en mode xp

par exemple un en mode normale (vista) et l'autre XP

Re: mettre les gadget en mode XP comment on fait ?

Publié : sam. 30/juil./2011 9:27
par MLD
Salut
Je comprend pas bien ta question, car si tu as coché le compilateur mode XP pas de problème., mais tient voici un code pour te faire les dents.

Code : Tout sélectionner

;MLD 30-9-2009
;Bouton avec icone plus texte
; Compilation PureBasic V4.31 ou plus
; réalisation  a partir d'un ancien code du forum Allemand.
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

Enumeration
#button1
#button2
#button3
#button4
#button5
EndEnumeration

icon2 = ExtractIcon_(0,"Shell32.dll", 131)
icon3 = ExtractIcon_(0,"Shell32.dll", 55)
icon4 = LoadIcon_(0,#IDI_ASTERISK)     
icon5 = LoadIcon_(0,#IDI_EXCLAMATION) 

FontID0 = LoadFont(0,"Courier New", 12)
FontID1 = LoadFont(1,"Comic sans MS", 15,#PB_Font_Underline  )
   
Procedure Bticotext(idbt,x.f,y.f,larg.f,haut.f,iconid,txt$,font,coultext,coulbout) 
Define hautimg.f,largimg.f,imgze.f
CI=CreateImage(idbt, larg, haut)

hdc=StartDrawing(ImageOutput(idbt))
SelectObject_(hdc, font)
  ; possibilité de régler l'espace entre lettres
  ; SetTextCharacterExtra_(hdc, 1) 

  ; Dessine l'image 
  Box(0,0,larg,haut,coulbout) 
  GetIconInfo_(iconid,@info.ICONINFO) 
  hautimg=info\xHotspot 
  largimg=info\yHotspot    
  If hautimg > haut-2: hautimg=hautimg/10*8: EndIf
  If largimg > larg-2: largimg=largimg/10*8: EndIf
  If hautimg < (haut-2)/2: hautimg=hautimg*1.8:largimg=largimg*1.8: EndIf
  dbimg=5 ; distance de bord gauche/image 
  cthimg=(haut-hautimg)/2 ;centre l'image en hauteur
  DrawImage(iconid,dbimg,cthimg,largimg,hautimg)
    
  ; Position du texte
  DrawingMode(#PB_2DDrawing_Transparent) 
  hautxt=TextHeight(txt$) 
  largtxt=TextWidth (txt$) 
  ditxt=largimg+dbimg+3 ; distance image/texte
  ctxt=(haut-hautxt)/2 ; centre le text en hauteur
  DrawText(ditxt,ctxt,txt$,coultext)
StopDrawing ()
ButtonImageGadget(idbt,x,y,larg,haut,ImageID(idbt))
EndProcedure


If OpenWindow(0,0,0,820,600,"Test Boutons") 
    
     Bticotext(#button1,10,100,190,36,icon2,"Premier Bouton",FontID0,#Blue,$F1F1F1)
     Bticotext(#button2,220,100,150,36,icon3,"2em Bouton",FontID1 ,#Red,$DAE1DE)
     Bticotext(#button3,10,150,150,36,icon4,"3em Bouton",FontID0,#Blue,$5AB5BD)
     Bticotext(#button4,220,150,160,72,icon5,"4em Bouton",FontID1,#Gray,$E4BBAF)
     Bticotext(#button5,10,250,160,72,icon4,"5em Bouton",FontID1,#Black,GetSysColor_(#COLOR_BTNFACE))     
    Repeat 
      Event = WaitWindowEvent() 
        If Event = #PB_Event_Gadget
          Select EventGadget()
           Case #button1
            ;votre code
           EndSelect                                 
         EndIf
      
    Until Event  = #PB_Event_CloseWindow 
EndIf 
DeleteObject_(font) 
End 
Mais cherche bien sur le forum, a bouton. Tu trouveras plein d'autres choses. :wink:

Re: mettre les gadget en mode XP comment on fait ?

Publié : dim. 31/juil./2011 19:25
par Jacobus

Code : Tout sélectionner

Procedure Bticotext(idbt,x.f,y.f,larg.f,haut.f,iconid,txt$,font,coultext,coulbout) 
Define hautimg.f,largimg.f,imgze.f
CI=CreateImage(idbt, larg, haut)

hdc=StartDrawing(ImageOutput(idbt))
SelectObject_(hdc, font)
	; possibilité de régler l'espace entre lettres
	; SetTextCharacterExtra_(hdc, 1) 

	; Dessine l'image 
	Box(0,0,larg,haut,coulbout) 
	GetIconInfo_(iconid,@info.ICONINFO) 
	hautimg=info\xHotspot 
	largimg=info\yHotspot    
	If hautimg > haut-2: hautimg=hautimg/10*8: EndIf
	If largimg > larg-2: largimg=largimg/10*8: EndIf
	If hautimg < (haut-2)/2: hautimg=hautimg*1.8:largimg=largimg*1.8: EndIf
	dbimg=5 ; distance de bord gauche/image 
	cthimg=(haut-hautimg)/2 ;centre l'image en hauteur
	DrawImage(iconid,dbimg,cthimg,largimg,hautimg)
		
	; Position du texte
	DrawingMode(#PB_2DDrawing_Transparent)
	DrawingFont(font)  ; <<<============================ ne pas oublier, sinon pas glop!
	hautxt=TextHeight(txt$) 
	largtxt=TextWidth (txt$) 
	ditxt=largimg+dbimg+3 ; distance image/texte
	ctxt=(haut-hautxt)/2 ; centre le text en hauteur
	DrawText(ditxt,ctxt,txt$,coultext)
StopDrawing ()
ButtonImageGadget(idbt,x,y,larg,haut,ImageID(idbt))
EndProcedure

Re: mettre les gadget en mode XP comment on fait ?

Publié : lun. 01/août/2011 14:41
par MLD
@ Jacobus

DrawingFont(font) ; <<<============================ ne pas oublier, sinon pas glop!
glop 8O 8O

Re: mettre les gadget en mode XP comment on fait ?

Publié : mar. 02/août/2011 14:30
par dayvid
Merci a vous

Je parlais de crée une fenêtre et:

de crée un bouton en mode vista (classic)
et un bouton en mode XP (sur la même fenêtre)

Désoler pour pas avoir été asser clair
voilà donc crée divers gadget avec des style different !

marci bien :)

Re: mettre les gadget en mode XP comment on fait ?

Publié : ven. 05/août/2011 12:58
par dayvid
Jacobus , elle sert quoi cette procedure dit moi :)

Re: mettre les gadget en mode XP comment on fait ?

Publié : ven. 05/août/2011 19:28
par Jacobus
réponse 1

Code : Tout sélectionner

If reponse 1
Des boutons...
multicolores et tout et tout
Avec des images en plus.
Ceci sur la proposition de MLD
Je n'ai qu'apporté une correction dans le code
EndIf 
réponse 2

Code : Tout sélectionner

Repeat ; after me, 1... 2
  Event = WaitWindowEvent() 
  If Event = #PB_Event_Noob
    Select EventNoob()
      Case 1 : SetGadgetText(#Txt1,"Euh... à rien, c'était pour faire avancer le schlimili... schlimi..liblik...")
      Case 2 : SetGadgetText(#Txt2,"Accessoirement à moudre le café, Yipee!")
      Case 3 : SetGadgetText(#Txt3,"Sinon, à faire parler les ...noobs")			  
    EndSelect                                 
  EndIf
Until Event  = #PB_Event_CloseMouth 
EndIf 
DeleteObject_(Boulet) 
End 

Re: mettre les gadget en mode XP comment on fait ?

Publié : mar. 09/août/2011 12:44
par dayvid
?????????????????

Re: mettre les gadget en mode XP comment on fait ?

Publié : mar. 09/août/2011 13:25
par falsam
dayvid a écrit :Je parlais de crée une fenêtre et:
de crée un bouton en mode vista (classic)
et un bouton en mode XP (sur la même fenêtre)
Je reste songeur dayvid !!! pourquoi un bouton théme XP et un bouton théme Vista sur la même fenêtre ?

Je me demande même pourquoi je pose cette question :p

Re: mettre les gadget en mode XP comment on fait ?

Publié : mar. 09/août/2011 13:46
par dayvid
J'ai déjà vue ça !!!

Je voudrait crée une fenêtre avec des gadget sous divers style (Vista ou Xp)
parfois c'est utile si dans un programme on veut activer ou désactiver le theme vista pour un gadget

Re: mettre les gadget en mode XP comment on fait ?

Publié : mar. 09/août/2011 14:16
par falsam
dayvid a écrit :J'ai déjà vue ça !!!

Je voudrait crée une fenêtre avec des gadget sous divers style (Vista ou Xp)
parfois c'est utile si dans un programme on veut activer ou désactiver le theme vista pour un gadget
Pour moi le style XP, Vista ou Windows 7 c'est le même rendu. Mais peut être que je me trompe.

Re: mettre les gadget en mode XP comment on fait ?

Publié : mar. 09/août/2011 15:04
par falsam
Au cas ou tu voudrais simplement enlever le style XP sur certains gadgets, tu peux essayer ce code.

Code : Tout sélectionner

StyleXP.b=#True

Procedure SetActiveXP(Gadget.l, Value.b)
  If Value=#True
    SetWindowTheme_(GadgetID(Gadget), @" ", @" ")
  Else
    SetWindowTheme_(GadgetID(Gadget), 0, 0)
  EndIf
EndProcedure


If OpenWindow(0, 0, 0, 200, 200, "Style XP On/Off", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ButtonGadget(1, 10, 10, 100, 20, "Bouton 1")
  ButtonGadget(2, 10, 30, 100, 20, "Bouton 2")
  
  
  ButtonGadget(10, 10, 160, 100, 20, "Style XP On/Off")

  Repeat
    WindowEvent = WaitWindowEvent()

    If WindowEvent = #PB_Event_Gadget
      If EventGadget() = 10
        If XPStyle=#False
          SetActiveXP(1, #True)
          SetActiveXP(2, #True)
          XPStyle = #True
        Else         
          SetActiveXP(1, #False)
          SetActiveXP(2, #False)
          XPStyle = #False
        EndIf
      EndIf
    EndIf
  Until WindowEvent = #PB_Event_CloseWindow
EndIf
Fonctionne avec Windows 7 mais je ne sais pas si ce sera le cas sous XP et Vista.

Compile avec le support des thèmes activé.

Re: mettre les gadget en mode XP comment on fait ?

Publié : ven. 12/août/2011 12:51
par dayvid
Bonjour falsam

Voilà, c'est ça que je voulais merci beaucoup :D

Je vais voir si ça marche sur vista mais je pense que oui
sous XP inutile que sa marche puisque le mode est toujours XP

Super, a plus :)