Page 3 sur 3
Re: TextGadget à fond transparent
Publié : dim. 12/janv./2014 17:04
par MLD
@Dzoumaka
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.

Re: TextGadget à fond transparent
Publié : dim. 12/janv./2014 17:13
par falsam
Dzoumaka, on peut encore simplifier le code en supprimant le test des gadgets de la procédure callback (WinProc).
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)
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 commentaires

Re: TextGadget à fond transparent
Publié : dim. 12/janv./2014 17:17
par Anonyme 2
Re: TextGadget à fond transparent
Publié : dim. 12/janv./2014 17:19
par falsam
Dzoumaka a écrit :Je me sens nul avec vos réponses, encore merci

J'aurais préféré que tu me dises si ça fonctionne avec l'utilisation que tu en as

Re: TextGadget à fond transparent
Publié : dim. 12/janv./2014 17:21
par Anonyme 2
C'est le cas !

Re: TextGadget à fond transparent
Publié : dim. 12/janv./2014 17:23
par falsam
Dzoumaka a écrit :C'est le cas !

Thumbs up

Re: TextGadget à fond transparent
Publié : lun. 13/janv./2014 0:29
par GeBonet
Bonjour,
@MLD, merci, mais je ne suis que de passage...
Et meilleurs voeux à toi et à ceux qui veulent
@Falsam
Bonjour GeBonet. Peut être que je me montre

mais 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.
C'est évident que les images ne sont pas accessibles puisque c'est les miennes...
Mais si tu lis le code il y a un commentaire explicite a ce sujet :
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 ?
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...
Également donne accès
à deux liens pour y télécharger ce que TOUS connaisse, les aides WIN32.HLP à placer dans le répertoire HELP qui devrait être dans le répertoire Purebasic et s'il n'y est pas, il est à créer... Maintenant ça n’intéresse personne ? Pas de problème

De toute façon je ne faisais que passer et ceci ne me donne pas envie d'y revenir...
Pas la peine de répondre avant l'année prochaine !

Re: TextGadget à fond transparent
Publié : mer. 15/oct./2014 19:39
par Anonyme
falsam a écrit :Dzoumaka, on peut encore simplifier le code en supprimant le test des gadgets de la procédure callback (WinProc).
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)
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 commentaires

Bonjour à tous,
Je déterre un peu le sujet, mais j'aurais été curieux de savoir quel serait le code similaire mais sous Mac étant donné qu'on utilise ici des API Windows..
Merci !
Re: TextGadget à fond transparent
Publié : mer. 15/oct./2014 21:58
par Ollivier
Si c'est urgent, peut-être vaut mieux "feinter" en copiant une image en "double tampon":
l'une sert de tampon original,
l'autre récupère l'original, subit ton affichage de texte quasiment en temps réel, puis est affichée par un imagegadget ou canvasgadget.
Ce n'est pas très compliqué à faire mais ce n'est pas facile de t'apporter une réponse si on ne sait pas trop les instructions que tu maîtrises dans ce langage.
Après si vraiment il te faut cette option sans "feinte", ce serait un coup de chance de trouver quelqu'un qui puisse t'aider ici rapidement. Pour augmenter tes chances de réponse, il y a le forum anglophone.
C'est un gars qui n'a pas Mac qui te parle. Quand j'ai vu les 4Go à télécharger pour programmer sur Mac, j'ai un peu fait marche arrière...
Je ne sais même si CanvasGadget fonctionne sur Mac. Si oui, je te recommande de tout centraliser sur ce gadget qui est quelque part "universel". N'hésite pas à piocher des exemples sur le forum pb: ils y sont allés comme des bourrins dès son intégration dans le langage.
Re: TextGadget à fond transparent
Publié : jeu. 16/oct./2014 9:46
par comtois
Comme dit précédemment les utilisateurs de mac sont plutôt sur le forum anglais.
il n'y a sans doute pas la réponse à ta question dans ce
post, par contre tu trouveras de nombreux exemples d'utilisation de la commande CocoaMessage(). Si tu veux personnaliser les gadgets c'est le passage obligé.