Page 1 sur 1

Changer la taille de la police dans un callback ...

Publié : dim. 28/sept./2008 12:23
par Kwai chang caine
Bonjour à tous

J'ai trouvé ce code de danilo et Num3, modifié par PB pour rendre un textGadget transparent 8)
Mais je ne sais pas comment ajuster la taille de la police dans la callback :oops:

Un truc de ouf, c'est que si je rajoute "SetGadgetFont" , apres la ligne "TextGadget", 2 caracteres apparaissent.
Le prenier en taille par defaut et le second en taille modifiée :shock:

Le probleme, est quand j'utilise une form skinnées :?
Je créé la form skinnée avec le generateur de MISHA, et j'obtiens un double X :?
Mais, cerise sur le kebab, c'est que si je rajoute les deux lignes "HideGadget" à la position 105 et 106, le double X disparait :shock:

Si quelqu'un a une idée, car j'ai tout essayé, de raffraichir la page,.... le gadget .....

Voici l'image pour le code

http://purebasic.myftp.org/files/413/Assiette.png

Et le code :

Code : Tout sélectionner

#FormAssiette = 0
#LabelFermer = 10
#FontArial25 = 20

Global HwndAssiette
Global TextGadgetBackground ; Variable Label transparent

UsePNGImageDecoder()

Procedure WinProc(hWnd, Msg, wParam, lParam) 
 
 If Msg = #WM_CTLCOLORSTATIC And lParam = GadgetID(#LabelFermer) 
  SetBkMode_(wParam, #TRANSPARENT) 
  ProcedureReturn TextGadgetBackground 
 Else 
  ProcedureReturn #PB_ProcessPureBasicEvents 
 EndIf 

EndProcedure 

Procedure OpenMaskedWindow_Assiette(WinID, x, y, Title.s, imID)

 HwndAssiette = OpenWindow(winID, GetSystemMetrics_(#SM_CXSCREEN), y, 355, 359, Title, #WS_POPUP)
 Memhandle = GlobalAlloc_(#GMEM_MOVEABLE,4440)
 *Mem = GlobalLock_(Memhandle)
 UnpackMemory(?Assiette_Mask, *Mem)
 Region = ExtCreateRegion_(0,4432, *Mem)
 SetWindowRgn_(HwndAssiette, Region, #True)
 Pic = CatchImage(imID,?Assiette)
 Brush = CreatePatternBrush_(Pic)
 SetClassLong_(HwndAssiette, #GCL_HBRBACKGROUND, Brush)
 ResizeWindow(WinID, x, y, #PB_Ignore, #PB_Ignore)
 GlobalUnlock_(Memhandle)
 GlobalFree_(Memhandle)
 DeleteObject_(Region)
 ProcedureReturn HwndAssiette

 DataSection

  Assiette:
  ;***********

  IncludeBinary "Assiette.png"

  Assiette_Mask:
  ;***********

  Data.l $1150434A,$569C0000,$8A10003 ,$189820C8,$22200101,$3180ACC ,$D541210B,$2394808 ,$B7A006A4,$4B7CE610
  Data.l $93B230A ,$1724C217,$19062CC1,$E9438B1E,$277508B9,$A58812C6,$250E5286,$9DDC4EEC,$96054B08,$94414A1E
  Data.l $778D3BC0,$57B42BF2,$5124288A,$DE94EF32,$5D93AEE9,$4512A269,$7B92BD49,$704EB8A7,$164A8AA5,$6E4AF7A5
  Data.l $BD84DA9D,$75AD2E95,$A2512F92,$9D6822F ,$2C4184AD,$D93A94A3,$17E50217,$5644CCC1,$51B628D2,$BF6EB2A 
  Data.l $60882081,$88F79D62,$2B1B28A3,$F4A3F584,$53A0045F,$8F25A958,$99032490,$FA555E22,$10410418,$4095C22C
  Data.l $4100106 ,$90A56C8B,$C1046041,$64495A22,$B0412010,$191A5608,$2C100904,$6485562 ,$8B0442C1,$254A9554
  Data.l $14310105,$991614C3,$A4C842A ,$D610803 ,$4582C31D,$20C90AA4,$11600878,$832D2A8 ,$E4588222,$20C84A9 
  Data.l $69162089,$8083A52A,$98450822,$A8202A4A,$A5918208,$2C08CAD2,$A9446082,$8C0232C4,$2A415820,$23200CB5
  Data.l $4A8E1608,$8D0832E ,$D2A34582,$823620CB,$4341160 ,$91C0B784,$A5445229,$4784198 ,$495022C1,$411F1066
  Data.l $9A5488B0,$10480419,$6895122C,$4120106 ,$9AA5008B,$C1041041,$66C93F22,$B0418810,$19BA4F88,$2C102304
  Data.l $67053D2 ,$8B044901,$419C94F0,$22C11250,$1067A53B,$13240498,$1CC04458,$4058F016,$8A532294,$CC02F300
  Data.l $59F0165 ,$A5702954,$70083008,$16BC169C,$A5B0A590,$70087008,$16FC16DC,$854A5D0 ,$380870CB,$150B3507
  Data.l $2984A5F0,$C7001C02,$1510544 ,$A3A8A63 ,$2A4B326 ,$D49474CA,$54A664B ,$2969E99C,$4953CC97,$8A69C085
  Data.l $73253380,$74D60153,$E3806A72,$80AC02A7,$95894536,$A9AB3992,$114D3810,$9CB21670,$14E2C106,$664AE701
  Data.l $E04202B3,$4045674 ,$41A8A831,$80455390,$ADB8AD59,$4EC13A80,$E066B011,$F20206A8,$C0450114,$1ABBE162
  Data.l $4533D04 ,$ACA78998,$FE02E041,$C6580114,$A701E3E2,$2E542AD ,$1CC41502,$5CDE348 ,$B9C9CA0C,$41B0C68F
  Data.l $80459420,$BC7839D9,$91324380,$4700D1D7,$1798901 ,$74EA8A8B,$EBC6B19E,$89803405,$4E028D3D,$20DA8569
  Data.l $C32C2A38,$DEE49EBC,$836215A ,$30CB7290,$D4E0C7BB,$C0550856,$32C222A4,$51511116,$55215BD ,$CA92CA54
  Data.l $572431A2,$A5829808,$5273E022,$85740DCD,$2A640CB0,$71A24E02,$98080553,$E0228A9C,$DE55774 ,$CB0A682 
  Data.l $4E0253F3,$20DF857A,$30CB2A70,$E4E0158B,$820E0857,$730022A7,$8380159 ,$CC328AA0,$118A3567,$1058C616
  Data.l $2C212C1B,$808A44E3,$38756153,$32C2A208,$38CB6CCC,$94EC1621,$58942458,$21624310,$30CBE32C,$B4E39707
  Data.l $63180858,$4C212C71,$1D3063AA,$A9C64397,$C7AE10B1,$961058A2,$51023E61,$3820B22C,$8592154D,$C5168CB0
  Data.l $23294E32,$28815584,$9D0CD966,$C0820AA8,$65935E14,$C658CBA7,$2719B2E9,$32C242CC,$20B3628B,$53B31196
  Data.l $584249C6,$459EC9C6,$CD02D031,$19615EB0,$9C65F3E6,$C3080B58,$82DC8A2D,$65844658,$7196B284,$6C212DD2
  Data.l $DE3260B7,$630B194E,$653B45BB,$658A789C,$861C849C,$2E232E1A,$54206588,$941C0846,$2E53EE4A,$54A06588
  Data.l $C21C0846,$2E7BEE72,$5882658C,$19580846,$4C21E827,$BA643BA ,$19621962,$C211B486,$33AC0BA8,$962095A0
  Data.l $61C211  ,$CB08BAEE,$CE94EE  ,$4659465C,$B881D308,$BB8C02ED,$72038653,$71772119,$EEA73BAC,$EF391882
  Data.l $5842194E,$19734186,$29C6EFA7,$F127833C,$833C5842,$53BC1978,$197989C6,$E9C6AC21,$C21833C ,$BD253BD 
  Data.l $197A1962,$49C6F506,$CF62C33D,$10BD5EE0,$55087196,$9C65A9C6,$C21133DC,$CF83BDE ,$658C9546,$A3863084
  Data.l $A0CF2F8A,$96101954,$98189A71,$833EBEAA,$58426553,$1956E9C6,$CA71FC27,$BF6A10CF,$65599610,$8ACAC618
  Data.l $5983033F,$CE181865,$FEC23FCA,$6B0C653B,$30081195,$4EC2255 ,$44AD810A,$DD3F2980,$9700C140,$A7663008
  Data.l $E184282B,$4ED80112,$3085ECC9,$7CC0629E,$BB0A2576,$10A18283,$98046196,$14250EC2,$225C4B90,$45538420
  Data.l $7342A0A1,$12600089,$785085BB,$8044112E,$438AD2A9,$12F2BC41,$7624A601,$2144050F,$8979C32C,$BB1A1380
  Data.l $2F50C288,$A9806011,$81455132,$11244BD ,$152A0AA6,$D146F785,$AEC6BDD0,$882820A2,$40449865,$45DDB308
  Data.l $89DE861 ,$C1549130,$74801828,$5300C022,$828DA325,$32C289D2,$D913154C,$D342146D,$22610089,$A3A98E3B
  Data.l $EC219610,$A601C044,$851F478A,$658413B1,$B2A62A98,$B3852903,$98650113,$13B2212A,$13B58429,$7654A601
  Data.l $19490523,$30CBC32C,$57641D95,$C4931652,$61964C64,$EEC83B22,$8A4A6CA4,$30CB98D1,$A5D91D91,$996E5E74
  Data.l $AED7130C,$50134728,$D799991B,$D3A9A8CE,$99181950,$A92E0ED7,$A3A25153,$6ACCD798,$29D494A7,$5E798B29
  Data.l $ACC8B22A,$9D4E4D76,$C892AA98,$4F7676AC,$8AC4C09D,$769CACC8,$C89D9D51,$B2E3C882,$614C5222,$62D29357
  Data.l $768C0228,$D6999955,$8CC8C85A,$99595776,$C5BD52DA,$ECF9767C,$75713AB4,$20AE8E0A,$75D9D9F3,$74EA2665
  Data.l $E614F31C,$2C2EFBB3,$E6277253,$22FFCF98,$659558D8,$813A3B32,$17E98227,$B4B0CEC1,$A75AE24C,$FB3C44F2
  Data.l $D608D822,$CC99E996,$8BE4BE8E,$5C986F60,$D3AEF5A6,$2A12227B,$82258C11,$BD3075DD,$5474454E,$44A45E7 
  Data.l $8160CBEB,$93B0969D,$77558953,$EC18C11 ,$58D33933,$11751769,$331A316C,$4959959B,$2C11C117,$B533D332
  Data.l $166D7315,$338C34C1,$D3B87093,$64ED2170,$5A8589DC,$D5B02304,$4EDDC84C,$124085B5,$276F    

 EndDataSection

EndProcedure

LoadFont(#FontArial25,"Arial", 25, #PB_Font_Bold)

HwndAssiette = OpenMaskedWindow_Assiette(#FormAssiette,10,10,"Panneau des propriétés",0) 
CreateGadgetList(WindowID(#FormAssiette)) 
SetWindowCallback(@WinProc())
TextGadgetBackground = GetStockObject_(#HOLLOW_BRUSH) 
TextGadget(#LabelFermer, 100, 100, 30, 30, "X")

HideGadget(#LabelFermer, 1) ; Ligne pour faire disparaitre le double X
HideGadget(#LabelFermer, 0) ; Ligne pour faire disparaitre le double X


SetGadgetFont(#LabelFermer, FontID(#FontArial25))

DeleteObject_(TextGadgetBackground) 

Repeat  

 Evenement = WaitWindowEvent()
 
 Select Evenement 
    
  Case #WM_LBUTTONDOWN
   SendMessage_(HwndAssiette, #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
   
 EndSelect
   
Until Evenement = #PB_Event_CloseWindow
Merci de votre aide
Bonne journée

Publié : mar. 30/sept./2008 14:34
par brossden
Bonjour ma biche !

Ton code marche bien chez moi il te suffit juste de grandir un poil la taille du textgadget !!

Code : Tout sélectionner

TextGadget(#LabelFermer, 100, 100, 300, 30, "XXXX") 

Publié : mer. 01/oct./2008 19:24
par Kwai chang caine
Boujour mon sucre d'orge
Comment je suis content de te reparler. :D
Tu te fais trop rare :?

Bah chez moi ça ne marche toujours pas, meme avec ta combine :cry:
Et ce qui m'etonne c'est que ça marche chez toi 8O

Parceque aujourd'hui je suis pas au boulot, et ça fait pareil qu'au boulot, donc j'ai 2 machines qui me doublent mes croix :twisted:

Essaye ce code, j'ai enlevé les hidegadget qui suppriment l'erreur, et tu devrais voir apparaitre une petite croix fine au dessus de la grosse que je veux garder.

J'ai pourtant modifier la ligne comme tu me l'a suggéré :wink:

Code : Tout sélectionner

#FormAssiette = 0 
#LabelFermer = 10 
#FontArial25 = 20 

Global HwndAssiette 
Global TextGadgetBackground ; Variable Label transparent 

UsePNGImageDecoder() 

Procedure WinProc(hWnd, Msg, wParam, lParam) 
  
 If Msg = #WM_CTLCOLORSTATIC And lParam = GadgetID(#LabelFermer) 
  SetBkMode_(wParam, #TRANSPARENT) 
  ProcedureReturn TextGadgetBackground 
 Else 
  ProcedureReturn #PB_ProcessPureBasicEvents 
 EndIf 

EndProcedure 

Procedure OpenMaskedWindow_Assiette(WinID, x, y, Title.s, imID) 

 HwndAssiette = OpenWindow(winID, GetSystemMetrics_(#SM_CXSCREEN), y, 355, 359, Title, #WS_POPUP) 
 Memhandle = GlobalAlloc_(#GMEM_MOVEABLE,4440) 
 *Mem = GlobalLock_(Memhandle) 
 UnpackMemory(?Assiette_Mask, *Mem) 
 Region = ExtCreateRegion_(0,4432, *Mem) 
 SetWindowRgn_(HwndAssiette, Region, #True) 
 Pic = CatchImage(imID,?Assiette) 
 Brush = CreatePatternBrush_(Pic) 
 SetClassLong_(HwndAssiette, #GCL_HBRBACKGROUND, Brush) 
 ResizeWindow(WinID, x, y, #PB_Ignore, #PB_Ignore) 
 GlobalUnlock_(Memhandle) 
 GlobalFree_(Memhandle) 
 DeleteObject_(Region) 
 ProcedureReturn HwndAssiette 

 DataSection 

  Assiette: 
  ;*********** 

  IncludeBinary "c:\Assiette.png" 

  Assiette_Mask: 
  ;*********** 

  Data.l $1150434A,$569C0000,$8A10003 ,$189820C8,$22200101,$3180ACC ,$D541210B,$2394808 ,$B7A006A4,$4B7CE610 
  Data.l $93B230A ,$1724C217,$19062CC1,$E9438B1E,$277508B9,$A58812C6,$250E5286,$9DDC4EEC,$96054B08,$94414A1E 
  Data.l $778D3BC0,$57B42BF2,$5124288A,$DE94EF32,$5D93AEE9,$4512A269,$7B92BD49,$704EB8A7,$164A8AA5,$6E4AF7A5 
  Data.l $BD84DA9D,$75AD2E95,$A2512F92,$9D6822F ,$2C4184AD,$D93A94A3,$17E50217,$5644CCC1,$51B628D2,$BF6EB2A 
  Data.l $60882081,$88F79D62,$2B1B28A3,$F4A3F584,$53A0045F,$8F25A958,$99032490,$FA555E22,$10410418,$4095C22C 
  Data.l $4100106 ,$90A56C8B,$C1046041,$64495A22,$B0412010,$191A5608,$2C100904,$6485562 ,$8B0442C1,$254A9554 
  Data.l $14310105,$991614C3,$A4C842A ,$D610803 ,$4582C31D,$20C90AA4,$11600878,$832D2A8 ,$E4588222,$20C84A9 
  Data.l $69162089,$8083A52A,$98450822,$A8202A4A,$A5918208,$2C08CAD2,$A9446082,$8C0232C4,$2A415820,$23200CB5 
  Data.l $4A8E1608,$8D0832E ,$D2A34582,$823620CB,$4341160 ,$91C0B784,$A5445229,$4784198 ,$495022C1,$411F1066 
  Data.l $9A5488B0,$10480419,$6895122C,$4120106 ,$9AA5008B,$C1041041,$66C93F22,$B0418810,$19BA4F88,$2C102304 
  Data.l $67053D2 ,$8B044901,$419C94F0,$22C11250,$1067A53B,$13240498,$1CC04458,$4058F016,$8A532294,$CC02F300 
  Data.l $59F0165 ,$A5702954,$70083008,$16BC169C,$A5B0A590,$70087008,$16FC16DC,$854A5D0 ,$380870CB,$150B3507 
  Data.l $2984A5F0,$C7001C02,$1510544 ,$A3A8A63 ,$2A4B326 ,$D49474CA,$54A664B ,$2969E99C,$4953CC97,$8A69C085 
  Data.l $73253380,$74D60153,$E3806A72,$80AC02A7,$95894536,$A9AB3992,$114D3810,$9CB21670,$14E2C106,$664AE701 
  Data.l $E04202B3,$4045674 ,$41A8A831,$80455390,$ADB8AD59,$4EC13A80,$E066B011,$F20206A8,$C0450114,$1ABBE162 
  Data.l $4533D04 ,$ACA78998,$FE02E041,$C6580114,$A701E3E2,$2E542AD ,$1CC41502,$5CDE348 ,$B9C9CA0C,$41B0C68F 
  Data.l $80459420,$BC7839D9,$91324380,$4700D1D7,$1798901 ,$74EA8A8B,$EBC6B19E,$89803405,$4E028D3D,$20DA8569 
  Data.l $C32C2A38,$DEE49EBC,$836215A ,$30CB7290,$D4E0C7BB,$C0550856,$32C222A4,$51511116,$55215BD ,$CA92CA54 
  Data.l $572431A2,$A5829808,$5273E022,$85740DCD,$2A640CB0,$71A24E02,$98080553,$E0228A9C,$DE55774 ,$CB0A682 
  Data.l $4E0253F3,$20DF857A,$30CB2A70,$E4E0158B,$820E0857,$730022A7,$8380159 ,$CC328AA0,$118A3567,$1058C616 
  Data.l $2C212C1B,$808A44E3,$38756153,$32C2A208,$38CB6CCC,$94EC1621,$58942458,$21624310,$30CBE32C,$B4E39707 
  Data.l $63180858,$4C212C71,$1D3063AA,$A9C64397,$C7AE10B1,$961058A2,$51023E61,$3820B22C,$8592154D,$C5168CB0 
  Data.l $23294E32,$28815584,$9D0CD966,$C0820AA8,$65935E14,$C658CBA7,$2719B2E9,$32C242CC,$20B3628B,$53B31196 
  Data.l $584249C6,$459EC9C6,$CD02D031,$19615EB0,$9C65F3E6,$C3080B58,$82DC8A2D,$65844658,$7196B284,$6C212DD2 
  Data.l $DE3260B7,$630B194E,$653B45BB,$658A789C,$861C849C,$2E232E1A,$54206588,$941C0846,$2E53EE4A,$54A06588 
  Data.l $C21C0846,$2E7BEE72,$5882658C,$19580846,$4C21E827,$BA643BA ,$19621962,$C211B486,$33AC0BA8,$962095A0 
  Data.l $61C211  ,$CB08BAEE,$CE94EE  ,$4659465C,$B881D308,$BB8C02ED,$72038653,$71772119,$EEA73BAC,$EF391882 
  Data.l $5842194E,$19734186,$29C6EFA7,$F127833C,$833C5842,$53BC1978,$197989C6,$E9C6AC21,$C21833C ,$BD253BD 
  Data.l $197A1962,$49C6F506,$CF62C33D,$10BD5EE0,$55087196,$9C65A9C6,$C21133DC,$CF83BDE ,$658C9546,$A3863084 
  Data.l $A0CF2F8A,$96101954,$98189A71,$833EBEAA,$58426553,$1956E9C6,$CA71FC27,$BF6A10CF,$65599610,$8ACAC618 
  Data.l $5983033F,$CE181865,$FEC23FCA,$6B0C653B,$30081195,$4EC2255 ,$44AD810A,$DD3F2980,$9700C140,$A7663008 
  Data.l $E184282B,$4ED80112,$3085ECC9,$7CC0629E,$BB0A2576,$10A18283,$98046196,$14250EC2,$225C4B90,$45538420 
  Data.l $7342A0A1,$12600089,$785085BB,$8044112E,$438AD2A9,$12F2BC41,$7624A601,$2144050F,$8979C32C,$BB1A1380 
  Data.l $2F50C288,$A9806011,$81455132,$11244BD ,$152A0AA6,$D146F785,$AEC6BDD0,$882820A2,$40449865,$45DDB308 
  Data.l $89DE861 ,$C1549130,$74801828,$5300C022,$828DA325,$32C289D2,$D913154C,$D342146D,$22610089,$A3A98E3B 
  Data.l $EC219610,$A601C044,$851F478A,$658413B1,$B2A62A98,$B3852903,$98650113,$13B2212A,$13B58429,$7654A601 
  Data.l $19490523,$30CBC32C,$57641D95,$C4931652,$61964C64,$EEC83B22,$8A4A6CA4,$30CB98D1,$A5D91D91,$996E5E74 
  Data.l $AED7130C,$50134728,$D799991B,$D3A9A8CE,$99181950,$A92E0ED7,$A3A25153,$6ACCD798,$29D494A7,$5E798B29 
  Data.l $ACC8B22A,$9D4E4D76,$C892AA98,$4F7676AC,$8AC4C09D,$769CACC8,$C89D9D51,$B2E3C882,$614C5222,$62D29357 
  Data.l $768C0228,$D6999955,$8CC8C85A,$99595776,$C5BD52DA,$ECF9767C,$75713AB4,$20AE8E0A,$75D9D9F3,$74EA2665 
  Data.l $E614F31C,$2C2EFBB3,$E6277253,$22FFCF98,$659558D8,$813A3B32,$17E98227,$B4B0CEC1,$A75AE24C,$FB3C44F2 
  Data.l $D608D822,$CC99E996,$8BE4BE8E,$5C986F60,$D3AEF5A6,$2A12227B,$82258C11,$BD3075DD,$5474454E,$44A45E7 
  Data.l $8160CBEB,$93B0969D,$77558953,$EC18C11 ,$58D33933,$11751769,$331A316C,$4959959B,$2C11C117,$B533D332 
  Data.l $166D7315,$338C34C1,$D3B87093,$64ED2170,$5A8589DC,$D5B02304,$4EDDC84C,$124085B5,$276F    

 EndDataSection 

EndProcedure 

LoadFont(#FontArial25,"Arial", 25, #PB_Font_Bold) 

HwndAssiette = OpenMaskedWindow_Assiette(#FormAssiette,10,10,"Panneau des propriétés",0) 
CreateGadgetList(WindowID(#FormAssiette)) 
SetWindowCallback(@WinProc()) 
TextGadgetBackground = GetStockObject_(#HOLLOW_BRUSH) 
TextGadget(#LabelFermer, 100, 100, 300, 30, "X")  

; HideGadget(#LabelFermer, 1) ; Ligne pour faire disparaitre le double X 
; HideGadget(#LabelFermer, 0) ; Ligne pour faire disparaitre le double X 


SetGadgetFont(#LabelFermer, FontID(#FontArial25)) 

DeleteObject_(TextGadgetBackground) 

Repeat  

 Evenement = WaitWindowEvent() 
  
 Select Evenement 
    
  Case #WM_LBUTTONDOWN 
   SendMessage_(HwndAssiette, #WM_NCLBUTTONDOWN, #HTCAPTION, 0) 
    
 EndSelect 
    
Until Evenement = #PB_Event_CloseWindow

Publié : jeu. 02/oct./2008 15:05
par brossden
Désolé ma puce je n'avais pas vu qu'il fallait effacer les deux lignes, cela marchait grâce à la solution que tu as trouvé tout seul !

Publié : jeu. 02/oct./2008 15:44
par Kwai chang caine
Bon c'est pas grave, l'important c'est de participer :D

C'est quand meme une histoire de dingue, personne ne peut ou ne veut m'aider sur ce coup la :cry:
Que ce soit de ce coté ou chez ceux d'autre coté de la mer :roll:
Je sent bien que je commence à gonfler avec mes melanges de codes mega compliqués :oops:

Pourtant y'a des mega caid qui verraient l'erreur en une seconde, enfin je pense (Disons 10 :lol:)

Bon bah en attendant, je la remet dans ma culotte :lol:
Et je reste avec ma solution de bricoleur :oops:

Merci quand meme, et content de t'avoir causé :wink:

Publié : ven. 03/oct./2008 8:08
par brossden
Ma douceur !

Je pense que j'ai compris ce qui se passe, quand tu changes le la Fonte de caractère tu n'obtiens pas un X plus x mais c'est la trace fantôme de l'ancien X que tu vois. En gros le X s'efface en laissant la même emprunte donc tu le vois toujours puisque le fond est détruit, je te propose la solution suivante :
- Tu crées le GadgetText avec un texte vierge
- Tu attribues une fonte de caractère.
- Tu changes la valeur du texte vierge par celui que tu veux.

Je sais que c'est presque aussi compliqué que ta solution mais je pense avoir trouvé la logique du problème.

Code : Tout sélectionner

#FormAssiette = 0
#LabelFermer = 10
#FontArial25 = 20

Global HwndAssiette
Global TextGadgetBackground ; Variable Label transparent

UsePNGImageDecoder()

Procedure WinProc(hWnd, Msg, wParam, lParam)
  
  If Msg = #WM_CTLCOLORSTATIC And lParam = GadgetID(#LabelFermer)
    SetBkMode_(wParam, #TRANSPARENT)
    ProcedureReturn TextGadgetBackground
  Else
    ProcedureReturn #PB_ProcessPureBasicEvents
  EndIf
  
EndProcedure

Procedure OpenMaskedWindow_Assiette(WinID, x, y, Title.s, imID)
  
  HwndAssiette = OpenWindow(winID, GetSystemMetrics_(#SM_CXSCREEN), y, 355, 359, Title, #WS_POPUP)
  Memhandle = GlobalAlloc_(#GMEM_MOVEABLE,4440)
  *Mem = GlobalLock_(Memhandle)
  UnpackMemory(?Assiette_Mask, *Mem)
  Region = ExtCreateRegion_(0,4432, *Mem)
  SetWindowRgn_(HwndAssiette, Region, #True)
  Pic = CatchImage(imID,?Assiette)
  Brush = CreatePatternBrush_(Pic)
  SetClassLong_(HwndAssiette, #GCL_HBRBACKGROUND, Brush)
  ResizeWindow(WinID, x, y, #PB_Ignore, #PB_Ignore)
  GlobalUnlock_(Memhandle)
  GlobalFree_(Memhandle)
  DeleteObject_(Region)
  ProcedureReturn HwndAssiette
  
  DataSection
    
    Assiette:
    ;***********
    
    IncludeBinary "c:\Assiette.png"
    
    Assiette_Mask:
    ;***********
    
    Data.l $1150434A,$569C0000,$8A10003 ,$189820C8,$22200101,$3180ACC ,$D541210B,$2394808 ,$B7A006A4,$4B7CE610
    Data.l $93B230A ,$1724C217,$19062CC1,$E9438B1E,$277508B9,$A58812C6,$250E5286,$9DDC4EEC,$96054B08,$94414A1E
    Data.l $778D3BC0,$57B42BF2,$5124288A,$DE94EF32,$5D93AEE9,$4512A269,$7B92BD49,$704EB8A7,$164A8AA5,$6E4AF7A5
    Data.l $BD84DA9D,$75AD2E95,$A2512F92,$9D6822F ,$2C4184AD,$D93A94A3,$17E50217,$5644CCC1,$51B628D2,$BF6EB2A
    Data.l $60882081,$88F79D62,$2B1B28A3,$F4A3F584,$53A0045F,$8F25A958,$99032490,$FA555E22,$10410418,$4095C22C
    Data.l $4100106 ,$90A56C8B,$C1046041,$64495A22,$B0412010,$191A5608,$2C100904,$6485562 ,$8B0442C1,$254A9554
    Data.l $14310105,$991614C3,$A4C842A ,$D610803 ,$4582C31D,$20C90AA4,$11600878,$832D2A8 ,$E4588222,$20C84A9
    Data.l $69162089,$8083A52A,$98450822,$A8202A4A,$A5918208,$2C08CAD2,$A9446082,$8C0232C4,$2A415820,$23200CB5
    Data.l $4A8E1608,$8D0832E ,$D2A34582,$823620CB,$4341160 ,$91C0B784,$A5445229,$4784198 ,$495022C1,$411F1066
    Data.l $9A5488B0,$10480419,$6895122C,$4120106 ,$9AA5008B,$C1041041,$66C93F22,$B0418810,$19BA4F88,$2C102304
    Data.l $67053D2 ,$8B044901,$419C94F0,$22C11250,$1067A53B,$13240498,$1CC04458,$4058F016,$8A532294,$CC02F300
    Data.l $59F0165 ,$A5702954,$70083008,$16BC169C,$A5B0A590,$70087008,$16FC16DC,$854A5D0 ,$380870CB,$150B3507
    Data.l $2984A5F0,$C7001C02,$1510544 ,$A3A8A63 ,$2A4B326 ,$D49474CA,$54A664B ,$2969E99C,$4953CC97,$8A69C085
    Data.l $73253380,$74D60153,$E3806A72,$80AC02A7,$95894536,$A9AB3992,$114D3810,$9CB21670,$14E2C106,$664AE701
    Data.l $E04202B3,$4045674 ,$41A8A831,$80455390,$ADB8AD59,$4EC13A80,$E066B011,$F20206A8,$C0450114,$1ABBE162
    Data.l $4533D04 ,$ACA78998,$FE02E041,$C6580114,$A701E3E2,$2E542AD ,$1CC41502,$5CDE348 ,$B9C9CA0C,$41B0C68F
    Data.l $80459420,$BC7839D9,$91324380,$4700D1D7,$1798901 ,$74EA8A8B,$EBC6B19E,$89803405,$4E028D3D,$20DA8569
    Data.l $C32C2A38,$DEE49EBC,$836215A ,$30CB7290,$D4E0C7BB,$C0550856,$32C222A4,$51511116,$55215BD ,$CA92CA54
    Data.l $572431A2,$A5829808,$5273E022,$85740DCD,$2A640CB0,$71A24E02,$98080553,$E0228A9C,$DE55774 ,$CB0A682
    Data.l $4E0253F3,$20DF857A,$30CB2A70,$E4E0158B,$820E0857,$730022A7,$8380159 ,$CC328AA0,$118A3567,$1058C616
    Data.l $2C212C1B,$808A44E3,$38756153,$32C2A208,$38CB6CCC,$94EC1621,$58942458,$21624310,$30CBE32C,$B4E39707
    Data.l $63180858,$4C212C71,$1D3063AA,$A9C64397,$C7AE10B1,$961058A2,$51023E61,$3820B22C,$8592154D,$C5168CB0
    Data.l $23294E32,$28815584,$9D0CD966,$C0820AA8,$65935E14,$C658CBA7,$2719B2E9,$32C242CC,$20B3628B,$53B31196
    Data.l $584249C6,$459EC9C6,$CD02D031,$19615EB0,$9C65F3E6,$C3080B58,$82DC8A2D,$65844658,$7196B284,$6C212DD2
    Data.l $DE3260B7,$630B194E,$653B45BB,$658A789C,$861C849C,$2E232E1A,$54206588,$941C0846,$2E53EE4A,$54A06588
    Data.l $C21C0846,$2E7BEE72,$5882658C,$19580846,$4C21E827,$BA643BA ,$19621962,$C211B486,$33AC0BA8,$962095A0
    Data.l $61C211  ,$CB08BAEE,$CE94EE  ,$4659465C,$B881D308,$BB8C02ED,$72038653,$71772119,$EEA73BAC,$EF391882
    Data.l $5842194E,$19734186,$29C6EFA7,$F127833C,$833C5842,$53BC1978,$197989C6,$E9C6AC21,$C21833C ,$BD253BD
    Data.l $197A1962,$49C6F506,$CF62C33D,$10BD5EE0,$55087196,$9C65A9C6,$C21133DC,$CF83BDE ,$658C9546,$A3863084
    Data.l $A0CF2F8A,$96101954,$98189A71,$833EBEAA,$58426553,$1956E9C6,$CA71FC27,$BF6A10CF,$65599610,$8ACAC618
    Data.l $5983033F,$CE181865,$FEC23FCA,$6B0C653B,$30081195,$4EC2255 ,$44AD810A,$DD3F2980,$9700C140,$A7663008
    Data.l $E184282B,$4ED80112,$3085ECC9,$7CC0629E,$BB0A2576,$10A18283,$98046196,$14250EC2,$225C4B90,$45538420
    Data.l $7342A0A1,$12600089,$785085BB,$8044112E,$438AD2A9,$12F2BC41,$7624A601,$2144050F,$8979C32C,$BB1A1380
    Data.l $2F50C288,$A9806011,$81455132,$11244BD ,$152A0AA6,$D146F785,$AEC6BDD0,$882820A2,$40449865,$45DDB308
    Data.l $89DE861 ,$C1549130,$74801828,$5300C022,$828DA325,$32C289D2,$D913154C,$D342146D,$22610089,$A3A98E3B
    Data.l $EC219610,$A601C044,$851F478A,$658413B1,$B2A62A98,$B3852903,$98650113,$13B2212A,$13B58429,$7654A601
    Data.l $19490523,$30CBC32C,$57641D95,$C4931652,$61964C64,$EEC83B22,$8A4A6CA4,$30CB98D1,$A5D91D91,$996E5E74
    Data.l $AED7130C,$50134728,$D799991B,$D3A9A8CE,$99181950,$A92E0ED7,$A3A25153,$6ACCD798,$29D494A7,$5E798B29
    Data.l $ACC8B22A,$9D4E4D76,$C892AA98,$4F7676AC,$8AC4C09D,$769CACC8,$C89D9D51,$B2E3C882,$614C5222,$62D29357
    Data.l $768C0228,$D6999955,$8CC8C85A,$99595776,$C5BD52DA,$ECF9767C,$75713AB4,$20AE8E0A,$75D9D9F3,$74EA2665
    Data.l $E614F31C,$2C2EFBB3,$E6277253,$22FFCF98,$659558D8,$813A3B32,$17E98227,$B4B0CEC1,$A75AE24C,$FB3C44F2
    Data.l $D608D822,$CC99E996,$8BE4BE8E,$5C986F60,$D3AEF5A6,$2A12227B,$82258C11,$BD3075DD,$5474454E,$44A45E7
    Data.l $8160CBEB,$93B0969D,$77558953,$EC18C11 ,$58D33933,$11751769,$331A316C,$4959959B,$2C11C117,$B533D332
    Data.l $166D7315,$338C34C1,$D3B87093,$64ED2170,$5A8589DC,$D5B02304,$4EDDC84C,$124085B5,$276F   
    
  EndDataSection
  
EndProcedure

LoadFont(#FontArial25,"Arial", 25, #PB_Font_Bold)

HwndAssiette = OpenMaskedWindow_Assiette(#FormAssiette,10,10,"Panneau des propriétés",0)
CreateGadgetList(WindowID(#FormAssiette))
SetWindowCallback(@WinProc())
TextGadgetBackground = GetStockObject_(#HOLLOW_BRUSH)
TextGadget(#LabelFermer, 100, 100, 300, 30, "") 
; HideGadget(#LabelFermer, 1) ; Ligne pour faire disparaitre le double X
; HideGadget(#LabelFermer, 0) ; Ligne pour faire disparaitre le double X
SetGadgetFont(#LabelFermer, FontID(#FontArial25))
SetGadgetText(#LabelFermer,"X")
DeleteObject_(TextGadgetBackground)

Repeat 
  
  Evenement = WaitWindowEvent()
  
  Select Evenement
      
    Case #WM_LBUTTONDOWN
      SendMessage_(HwndAssiette, #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
      
  EndSelect
  
Until Evenement = #PB_Event_CloseWindow

Publié : ven. 03/oct./2008 9:03
par brossden
J'en profite pour te proposer ma solution sans tous les datas et pour fermer la fenêtre clic droit dessus :

Code : Tout sélectionner

Global TextGadgetBackground ; Variable Label transparent
UsePNGImageDecoder()
DataSection
  DASS:
  IncludeBinary "c:\assiette.png"
  FASS:
EndDataSection
CatchImage(0,?DASS,FASS-DASS)
LoadFont(20,"Arial", 25, #PB_Font_Bold)
Procedure WinProc(hwnd, msg, wParam, lParam)
  If msg = #WM_CTLCOLORSTATIC And lParam = GadgetID(10)
    SetBkMode_(wParam, #TRANSPARENT)
    ProcedureReturn TextGadgetBackground
  Else
    ProcedureReturn #PB_ProcessPureBasicEvents
  EndIf
EndProcedure
Procedure Detoure()
  Region = CreateEllipticRgn_(11, 11, 341, 339)
  SetWindowRgn_(WindowID(0), Region, #True) ; On applique la région
  DeleteObject_(Region) ; On supprime la région 
EndProcedure
Procedure Fond(Win,Ima)
  Fond.LOGBRUSH\lbStyle=3 : Fond\lbColor=255 : Fond\lbHatch=ImageID(Ima)
  SetClassLong_(WindowID(Win),-10,CreateBrushIndirect_(Fond))
EndProcedure
OpenWindow(0,0,0,350,350,"",#PB_Window_BorderLess)
Detoure()
Fond(0,0)
CreateGadgetList(WindowID(0))
SetWindowCallback(@WinProc())
TextGadgetBackground = GetStockObject_(#HOLLOW_BRUSH)
TextGadget(10, 100, 100, 300, 30, "") 
SetGadgetFont(10, FontID(20))
SetGadgetText(10,"X")
DeleteObject_(TextGadgetBackground)
Repeat 
  Evenement = WaitWindowEvent()
  Select Evenement
    Case #WM_LBUTTONDOWN
      SendMessage_(WindowID(0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
    Case #WM_RBUTTONDOWN
      End
  EndSelect
Until Evenement = #PB_Event_CloseWindow

Publié : ven. 03/oct./2008 9:46
par Kwai chang caine
Mais dis donc ............
C'est drolement bien ça :D

Merci, mon BROSSINOUS D'AMOUR 8)

Et en plus c'est drolement plus leger, et les dieux savent qu'en ce qui nous concerne etre leger c'est pas tous les jours :lol:

Mille merci
Je t'aime

Publié : mer. 08/oct./2008 7:28
par brossden
A ton service ma caille sucrée ! :lol:

Dans la même optique il est possible de créer des régions rectangulaires, triangulaires et de les associées entre elles.