1° Ce n'est pas mon code mais celui de netmaestro, qui est un exellent programmeur en PB depuis des lustres.
2° Je confirme que ce code fonctionne avec plusieurs TextGadget.
GeBonet : Content de te relire sur le forum et te souhaite une bonne année.


Code : Tout sélectionner
Global TextGadgetBackground, TextGadgetForeground
TextGadgetBackground = GetStockObject_(#HOLLOW_BRUSH)
TextGadgetForeground = RGB(255, 0, 0)
Procedure WinProc(hWnd, Msg, wParam, lParam)
If Msg = #WM_CTLCOLORSTATIC
SetBkMode_(wParam, #TRANSPARENT)
SetTextColor_(wParam, TextGadgetForeground)
ProcedureReturn TextGadgetBackground
Else
ProcedureReturn #PB_ProcessPureBasicEvents
EndIf
EndProcedure
OpenWindow(0, 0, 0, 250, 100, "Test", #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
SetWindowCallback(@WinProc())
TextGadget(0, 10, 10, 225, 13, "This TextGadget has a transparent background")
TextGadget(1, 10, 30, 225, 13, "This second gadget has a transparent background")
hBrush = CreatePatternBrush_(LoadImage(1, #PB_Compiler_Home + "Examples\Sources\Data\AlphaChannel.bmp"))
SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, hBrush)
InvalidateRect_(WindowID(0), 0, #True)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
DeleteObject_(TextGadgetBackground)
J'aurais préféré que tu me dises si ça fonctionne avec l'utilisation que tu en asDzoumaka a écrit :Je me sens nul avec vos réponses, encore merci
Thumbs upDzoumaka a écrit :C'est le cas !![]()
C'est évident que les images ne sont pas accessibles puisque c'est les miennes...Bonjour GeBonet. Peut être que je me montremais le code que tu donnes n'est pas fonctionnel car tu donnes des images qui n'existe pas sur nos PC (en tout cas le mien). De plus, il n'a aucun rapport avec la demande de Dzoumaka qui cherche à avoir des gadgettext transparents et non pas une fenêtre transparente.
Quand au fait que ce soit pertinent puisqu'il s'agissait de Gadget, je sais lire ! Mais je donnais un code qui n'est pas à moi, mais du forum... Et qui est une piste ! Et que tous demande à Dzoumaka de lire et de chercher, alors je montre des choses trouvé, comme une FENÊTRE transparente...Image_ButtonImage_0:
IncludeBinary "C:\0 0 PureBasic52\PureBasic\00 ProgeneVII\Mes_Jpg\Fred_t.jpg" ; <<====== Votre chemin et Image JPG ?
Image_01:
IncludeBinary "C:\0 0 PureBasic52\PureBasic\00 ProgeneVII\Mes_Png\1jam_flag.png" ; <<====== Votre chemin et Image PNG ?
Bonjour à tous,falsam a écrit :Dzoumaka, on peut encore simplifier le code en supprimant le test des gadgets de la procédure callback (WinProc).De cette manière tu peux coder tes textgadgets sans te préoccuper de l’énumération de tes gadgettext. N'hésite pas à nous faire part de tes commentairesCode : Tout sélectionner
Global TextGadgetBackground, TextGadgetForeground TextGadgetBackground = GetStockObject_(#HOLLOW_BRUSH) TextGadgetForeground = RGB(255, 0, 0) Procedure WinProc(hWnd, Msg, wParam, lParam) If Msg = #WM_CTLCOLORSTATIC SetBkMode_(wParam, #TRANSPARENT) SetTextColor_(wParam, TextGadgetForeground) ProcedureReturn TextGadgetBackground Else ProcedureReturn #PB_ProcessPureBasicEvents EndIf EndProcedure OpenWindow(0, 0, 0, 250, 100, "Test", #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered) SetWindowCallback(@WinProc()) TextGadget(0, 10, 10, 225, 13, "This TextGadget has a transparent background") TextGadget(1, 10, 30, 225, 13, "This second gadget has a transparent background") hBrush = CreatePatternBrush_(LoadImage(1, #PB_Compiler_Home + "Examples\Sources\Data\AlphaChannel.bmp")) SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, hBrush) InvalidateRect_(WindowID(0), 0, #True) Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow DeleteObject_(TextGadgetBackground)