Bonjour,
Au cours d'un programme si je change la couleur de fond de la fenêtre avec SetWindowColor , je n'arrive plus à écrire du texte avec DrawText qui semble fonctionner qu'avec la couleur choisie à l'ouverture de la fenêtre.
J'ai essayé tous les DrawingMode sans succès .
Est ce qu'il y a une solution ?
Merci d'avance
probleme avec SetWindowColor
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: probleme avec SetWindowColor
Comme l'indique ma signature, je suis un Noob mais je pense que la manière élégante est de passer par la conception d'une image que tu affiche au dernier moment.
Code : Tout sélectionner
Enumeration
#MainForm
#Image
#BackGround
EndEnumeration
Procedure MainFormShow()
OpenWindow(#MainForm,0,0,800,600,"Un mot des mots",#PB_Window_ScreenCentered | #PB_Window_SystemMenu)
;Création d'une image vide (Elle ne s'affiche pas pour le moment)
If CreateImage(#Image, 800, 600) And StartDrawing(ImageOutput(#Image))
;#PB_2DDrawing_Transparent : le fond du texte affiché avec DrawText() sera transparent.
DrawingMode(#PB_2DDrawing_Transparent)
;Un rectangle qui contiendra la couleur de fond souhaitée
Box(#BackGround, 0, 800, 600, RGB(252, 251, 166))
;Un peu de texte et de la couleur au hasard
For i = 1 To 50
DrawText(Random(800), Random(600), "Un mot", RGB(Random(255), Random(255), Random(255)))
Next i
;On arrete de dessiner
StopDrawing()
;On affiche l'image (Inutile de préciser les coordonnées)
ImageGadget(#Image, 0, 0, 0, 0, ImageID(#Image))
EndIf
EndProcedure
MainFormShow()
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: probleme avec SetWindowColor
C'est vrai que ta solution semble élégante
Merci encore
Merci encore