Page 1 sur 1

[Résolu] Changer la police en mode graphique.

Publié : dim. 24/août/2008 20:17
par gildev
On considère FenExtDC comme étant le DC de ma fenetre externe (la calculatrice de Windows, hé hé hé). J'écris dans une fenêtre externe avec la commande TextOut_ qui marche super bien...

Voici un extrait de mon code:

Code : Tout sélectionner

texte = "GILDEV" ; le texte à afficher
SetBkMode_(FenExtDC, TRANSPARENT) ; fond transparent
SetTextColor_(FenExtDC, RGB(0,200,0)) ; texte en vert
TextOut_(FenExtDC, 120, 5, texte, Len(texte)) ; affichage dans la calculatrice
Ce qui donne:

Image

Mais j'aimerai changer la police du texte (style et taille) et j'ai beau parcourir MSDN je ne trouve pas la commande API pour faire ça.

Publié : lun. 25/août/2008 8:32
par kernadec
bonjour
#TRANSPARENT est une constante
peut etre que c'est un truc comme ca !
je viens d'ajouter le bouton je pense que c'est cela que tu cherche?

Code : Tout sélectionner

Global dc.l,texte$
Procedure DrawRText(dc.l,x,y,Text.s,fFont.s,fangle.l,fHeight) 
  ;##################################################################### 
  ; Procedure DrawRText  Author: Andreas 
  ; Date: 14. June 2003 
  ;##################################################################### 
  Font = CreateFont_(fHeight,0,fangle*10,0,0,0,0,0,0,0,0,0,0,fFont) 
  GetWindowRect_(WindowID(0),r.RECT) 
  OldFont = SelectObject_(dc,Font) 
  SetTextAlign_(dc,#TA_BASELINE) 
  SetBkMode_(dc,#TRANSPARENT)     
  SetTextColor_(dc,RGB(0,200,0)) 
  ExtTextOut_(dc, x,y,0 ,r,Text,Len(Text),0 ) 
  SelectObject_(dc,OldFont) 
  DeleteObject_(Font) 
EndProcedure 

OpenWindow(0,0,0,500,400,"test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
dc=StartDrawing(WindowOutput(0))
 
  texte$ = "GILDEV" ; le texte à afficher 
  LoadFont(0, "Arial", 20,#PB_Font_Bold)
  If   CreateGadgetList(WindowID(0))
    SetGadgetFont(#PB_Default, FontID(0)) 
    ButtonGadget(0, 10, 10, 200, 30, "Bouton")
  EndIf
  LoadFont(1, "Arial", 20)
  DrawRText(dc,120,100,texte$,"Arial",0,20) 
  LoadFont(1, "Arial", 40,#PB_Font_Bold)
  DrawRText(dc,120,140,texte$,"Arial",0,40) 
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow 
StopDrawing()

Publié : lun. 25/août/2008 10:39
par gildev
Ca a l'air de répondre à ma question. Je testerai ce soir après le taf.

Publié : lun. 25/août/2008 23:06
par gildev
J'ai dû modifier un petit détail car ça me faisait une erreur.
Mais en tout cas c'est bien ce que je cherchais et ça fonctionne très bien.

Merci kernadec!

Publié : mar. 26/août/2008 6:48
par kernadec
bonjour
je suis content pour toi et de la reussite de ton travail
au revoir