Page 1 sur 1
probleme avec SetWindowColor
Publié : dim. 30/janv./2011 14:21
par pierrep
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
Re: probleme avec SetWindowColor
Publié : dim. 30/janv./2011 15:21
par falsam
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
Re: probleme avec SetWindowColor
Publié : dim. 30/janv./2011 17:39
par pierrep
C'est vrai que ta solution semble élégante
Merci encore