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