mettre les gadget en mode XP comment on fait ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

mettre les gadget en mode XP comment on fait ?

Message 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
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

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

Message 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:
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

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

Message 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
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

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

Message par MLD »

@ Jacobus

DrawingFont(font) ; <<<============================ ne pas oublier, sinon pas glop!
glop 8O 8O
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

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

Message 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 :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

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

Message par dayvid »

Jacobus , elle sert quoi cette procedure dit moi :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

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

Message 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 
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

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

Message par dayvid »

?????????????????
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

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

Message 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
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

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

Message 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
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

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

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

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

Message 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é.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

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

Message 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 :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Répondre