Changer la taille de la police dans un callback ...
Publié : dim. 28/sept./2008 12:23
Bonjour à tous
J'ai trouvé ce code de danilo et Num3, modifié par PB pour rendre un textGadget transparent
Mais je ne sais pas comment ajuster la taille de la police dans la callback
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
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
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 :
Merci de votre aide
Bonne journée
J'ai trouvé ce code de danilo et Num3, modifié par PB pour rendre un textGadget transparent

Mais je ne sais pas comment ajuster la taille de la police dans la callback

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

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

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
Bonne journée