TextSetFont

Établit la fonte pour la sortie du texte par les méthodes du dessin et rend le résultat de la réussite de cette opération. On utilise par défaut la fonte Arial et la taille -120 (12 pt).

bool  TextSetFont(
   const string  name,            // le nom de la fonte ou la voie vers le fichier de la fonte sur le disque
   int           size,            // la taille de la fonte
   uint          flags,           // la combinaison des drapeaux
   int           orientation=0    // l'angle de l'inclinaison du texte
   );

Réglages

name

[in]  Le nom de la fonte dans le système, ou le nom de la ressource contenant la fonte, ou la voie vers le fichier de la fonte sur le disque.

size

[in] La taille de la fonte, qui peut être spécifiée par les valeurs positives et négatives. Aux valeurs positives la taille du texte déduit ne dépend pas des réglages des tailles des fontes dans le système d'exploitation. Aux valeurs négatives la valeur est spécifiée dans les dixièmes parts du point et la taille du texte dépendra des réglages du système ("l'échelle standard" ou "une grande échelle"). Plus en détail sur la différence entre les modes regardez dans la Note

flags

[in]  La combinaison des drapeaux, décrivant le style de la fonte.

orientation

[in]  L'angle de l'inclinaison du texte à l'horizontale vers l'axe X, l'unité de mesure est égale 0.1 degrés. C'est-à-dire orientation=450signifie l'inclinaison à 45 degrés.

La valeur rendue

Rend true en cas de l'installation réussie de la fonte courante, autrement rend false. Les codes possibles des erreurs:

  • ERR_INVALID_PARAMETER(4003) - name présente NULL ou "" (la ligne vide),
  • ERR_INTERNAL_ERROR(4001) - l'erreur du système d'exploitation (par exemple, la tentative de la création de la fonte inexistante).

Note

Si dans le nom de la fonte est utilisé "::", la fonte est chargée de la ressource EX5. Si le nom de la fontenameest indiqué avec l'extansion, la fonte est chargée du fichier, en cela — si la voie commence par "\" ou "/", le fichier est cherché par rapport au catalogue MQL5, autrement il est cherché par rapport à la voie du fichier EX5 qui a appelé la fonction TextSetFont().

La taille de la fonte est spécifiée par les valeurs positives ou négatives, le signe définit la dépendance de la taille du texte des réglages du système d'exploitation (l'échelle de la fonte).

  • Si le taille est spécifiée par le nombre positif, à l'affichage de la fonte logique au physique se passe la transformation de la taille en unités physiques de la mesure du dispositif (les pixels) et cette taille correspond à la hauteur des cellules des symboles des fontes accessibles. Il n'est pas recommandé dans les cas où on suppose l'utilisation partagée sur le graphique des textes déduits par la fonctionTextOut(), et des textes affichés à l'aide de l'objet graphiqueOBJ_LABEL ("La marque de texte").
  • Si la taille est spécifiée par le nombre négatif, la taille indiquée est supposé spécifiée aux dixièmes parts du point logique (la valeur -350 est égal au 35 points logiques) et se divise sur 10, et puis la valeur reçue sera transformée en unités physiques de la mesure du dispositif (les pixels) et correspond à la valeur absolue de la hauteur du symbole des fontes accessibles. Pour recevoir à l'écran le texte de la même taille, comme dans l'objetOBJ_LABEL , prenez la taille de la fonte indiquée aux propriétés de l'objet et multipliez sur -10.

Les drapeaux peuvent être utilisés en forme de la combinaison des drapeaux du style avec un des drapeaux, qui spécifie l'épaisseur de la fonte. Les noms des drapeaux sont plus bas.

Les drapeaux pour spécifier le style du tracé de la fonte

Le drapeau

La description

FONT_ITALIC

L'italique

FONT_UNDERLINE

Le soulignement

FONT_STRIKEOUT

Le barrement

 

Les drapeaux pour spécifier l'épaisseur de la fonte

Le drapeau

FW_DONTCARE

FW_THIN

FW_EXTRALIGHT

FW_ULTRALIGHT

FW_LIGHT

FW_NORMAL

FW_REGULAR

FW_MEDIUM

FW_SEMIBOLD

FW_DEMIBOLD

FW_BOLD

FW_EXTRABOLD

FW_ULTRABOLD

FW_HEAVY

FW_BLACK

 

Exemple :

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
 
#define   COORD_X    200
#define   COORD_Y    100
#define   OBJ_NAME   "TestTextGetSizeBitmapLabel"
#define   RES_NAME   "TestTextGetSizeResource"
#define   COLOR_NULL 0x00FFFFFF
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Identifiant du graphique courant
   long   chart_idChartID();
   
   string font_names[] ={"Arial""Tahoma""Calibri"};
   uint   flags_array[]={0FONT_ITALICFONT_UNDERLINEFONT_STRIKEOUT};
   uint   fw_array[]={FW_DONTCAREFW_THINFW_EXTRALIGHTFW_ULTRALIGHTFW_LIGHT,
                      FW_NORMALFW_REGULARFW_MEDIUMFW_SEMIBOLDFW_DEMIBOLD,
                      FW_BOLDFW_EXTRABOLDFW_ULTRABOLDFW_HEAVYFW_BLACK};
   
//--- désactive l'affichage de tous les attributs du graphique des prix
   ChartSetInteger(chart_idCHART_SHOWfalse);
   
//--- déclare les paramètres de la ressource graphique
   uint rc_width =(int)ChartGetInteger(chart_idCHART_WIDTH_IN_PIXELS); 
   uint rc_height=(int)ChartGetInteger(chart_idCHART_HEIGHT_IN_PIXELS); 
   uint rc_data[]; 
   uint rc_size=rc_width*rc_height;
  
//--- crée une ressource graphique pour l'affichage du texte
   if(!CreateResource(chart_idrc_datarc_widthrc_height))
      return;
   
//--- boucle sur les noms des polices de caractères
   for(int i=0i<(int)font_names.Size(); i++)
     {
      //--- boucle sur les flags de la police de caractères
      for(int j=0j<(int)flags_array.Size(); j++)
        {
         //--- dessine le texte avec la police de caractères et le style obtenus du tableau
         DrawText(font_names[i], flags_array[j], rc_datarc_widthrc_height);
         Sleep(800);
         ArrayInitialize(rc_dataCOLOR_NULL);
        }
      Sleep(800);
      ArrayInitialize(rc_dataCOLOR_NULL);
     }
   
//--- après avoir affiché tous les textes avec différentes tailles et styles de police,
//--- affiche le texte avec différentes tailles
   for(int i=0i<(int)fw_array.Size(); i++)
     {
      //--- définit la taille et le nom de la police de caractères pour afficher le texte
      string font_name="Tahoma";
      int    size=-140;
      TextSetFont(font_namesizefw_array[i]);
      
      //--- crée une chaîne de texte dessinée, l'affiche dans le tableau de pixels de la ressource et met à jour la ressource
      string text=StringFormat("Text%d: Font name: \"%s%s\", size: %d (%d)"i+1font_nameFlagWidthDescription(fw_array[i]), sizesize/-10);
      TextOut(textCOORD_XCOORD_YANCHOR_LEFT_UPPERrc_datarc_widthrc_heightColorToARGB(clrDodgerBlue), COLOR_FORMAT_ARGB_NORMALIZE);
      Update(RES_NAMErc_datarc_widthrc_heighttrue);
      //--- attend 1 seconde
      Sleep(1000);
      ArrayInitialize(rc_dataCOLOR_NULL);
     }
   
//--- attends 5 secondes, puis libère la ressource et supprime l'objet graphique
   Sleep(5000);
   ResourceFree(RES_NAME);
   ObjectDelete(chart_idOBJ_NAME);
   
//--- permet de dessiner n'importe quel attribut sur le graphique des prix
   ChartSetInteger(chart_idCHART_SHOWtrue);
   ChartRedraw(chart_id);
   /*
   Les messages texte s'affichent sur le graphique suite à l'exécution du script.
   Les textes utilisent des polices différentes, et leurs styles et largeurs varient également.
   */ 
  }
//+------------------------------------------------------------------+
//| Affiche 5 chaînes de caractères de tailles différentes           |
//| avec la police et les flags spécifiés                            |
//+------------------------------------------------------------------+
void DrawText(const string font_nameuint flagsuint &pixels_array[], uint res_widthuint res_height)
  {
//--- affiche 5 chaînes de texte avec des tailles de police différentes
   for(int i=0i<5i++)
     {
      //--- calcule la taille et définit la police de caractère pour l'affichage du texte avec les méthodes de dessin
      int size=-140+10*i;
      TextSetFont(font_namesizeflags);
      
      //--- crée une chaîne de texte dessinée, l'affiche dans le tableau de pixels de la ressource et met à jour la ressource
      string text=StringFormat("Text%d: Font name: \"%s%s\", size: %d (%d)"i+1font_nameFlagDescription(flags), sizesize/-10);
      TextOut(textCOORD_XCOORD_Y+22*iANCHOR_LEFT_UPPERpixels_arrayres_widthres_heightColorToARGB(clrDodgerBlue), COLOR_FORMAT_ARGB_NORMALIZE);
      Update(RES_NAMEpixels_arrayres_widthres_heighttrue);
      //--- attends un peu
      Sleep(800);
     }
  }
//+------------------------------------------------------------------+
//| Retourne une description des flags de style de la police         |
//+------------------------------------------------------------------+
string FlagDescription(const uint flag)
  {
   switch(flag)
     {
      case FONT_ITALIC     :  return(" Italic");
      case FONT_UNDERLINE  :  return(" Underline");
      case FONT_STRIKEOUT  :  return(" Strikeout");
     }
   return("");
  }
//+------------------------------------------------------------------+
//| Retourne une description des flags de largeurs de la police   |
//+------------------------------------------------------------------+
string FlagWidthDescription(const uint flag)
  {
   switch(flag)
     {
      case FW_DONTCARE  :  return(" Dontcare");
      case FW_THIN      :  return(" Thin");
      case FW_EXTRALIGHT:  return(" Extralight");
      case FW_ULTRALIGHT:  return(" Ultralight");
      case FW_LIGHT     :  return(" Light");
      case FW_NORMAL    :  return(" Normal");
      case FW_REGULAR   :  return(" Regular");
      case FW_MEDIUM    :  return(" Medium");
      case FW_SEMIBOLD  :  return(" Semibold");
      case FW_DEMIBOLD  :  return(" Demibold");
      case FW_BOLD      :  return(" Bold");
      case FW_EXTRABOLD :  return(" Extrabold");
      case FW_ULTRABOLD :  return(" Ultrabold");
      case FW_HEAVY     :  return(" Heavy");
      case FW_BLACK     :  return(" Black");
     }
   return("");
  }
//+------------------------------------------------------------------+
//| Crée une ressource graphique pour le graphique entier            |
//+------------------------------------------------------------------+
bool CreateResource(const long chart_iduint &pixel_data[], const uint widthconst uint height)
  {
//--- définit la taille du tableau de pixels
   ResetLastError(); 
   uint size=width*height;
   if(ArrayResize(pixel_datasize)!=size
     { 
      PrintFormat("%s: ArrayResize() failed. Error code %d",__FUNCTION__GetLastError()); 
      return(false); 
     } 
//--- remplit le tableau de pixels avec une couleur transparente et crée une ressource graphique basée sur ce tableau
   ArrayInitialize(pixel_dataCOLOR_NULL); 
   if(!ResourceCreate(RES_NAMEpixel_datawidthheight000COLOR_FORMAT_ARGB_NORMALIZE)) 
     { 
      PrintFormat("%s: ResourceCreate() failed. Error code ",__FUNCTION__GetLastError()); 
      return(false); 
     } 
  
//--- crée un objet Etiquette Graphique (Graphic Label) aux coordonnées du coin supérieur gauche du graphique
   if(!ObjectCreate(0OBJ_NAMEOBJ_BITMAP_LABEL000)) 
     { 
      PrintFormat("%s: ObjectCreate() failed. Error code %d",__FUNCTION__GetLastError()); 
      return(false); 
     } 
//--- définit la largeur et la hauteur de l'objet bitmap créé égales à la largeur et à la hauteur de la ressource graphique
//--- définit le point d'ancrage au centre
   if(!ObjectSetInteger(chart_idOBJ_NAMEOBJPROP_XSIZEwidth))
     {
      PrintFormat("%s: ObjectSetInteger() failed. Error code %d",__FUNCTION__GetLastError()); 
      return(false); 
     }
   if(!ObjectSetInteger(chart_idOBJ_NAMEOBJPROP_YSIZEheight))
     {
      PrintFormat("%s: ObjectSetInteger() failed. Error code %d",__FUNCTION__GetLastError()); 
      return(false); 
     }
//--- spécifie la ressource graphique précédemment créée pour l'objet bitmap sous forme de fichier image
//--- dans ce cas, pour indiquer le nom de la ressource graphique utilisée, il faut ajouter "::" avant son nom
   if(!ObjectSetString(chart_idOBJ_NAMEOBJPROP_BMPFILE"::"+RES_NAME))
     {
      PrintFormat("%s: ObjectSetString() failed. Error code %d",__FUNCTION__GetLastError()); 
      return(false); 
     }
    
//--- tout va bien
   return(true);
  }
//+------------------------------------------------------------------+ 
//| Met à jour les données de la ressource graphique                 |
//+------------------------------------------------------------------+ 
void Update(const string res_nameconst uint &pixel_data[], const uint widthconst uint heightconst bool redraw
  { 
//--- passe si aucune dimension n'est passée
   if(width==0 || height==0
      return
//--- met à jour les données de la ressource et redessine le graphique
   if(ResourceCreate(res_namepixel_datawidthheight000COLOR_FORMAT_ARGB_NORMALIZE) && redraw
      ChartRedraw(); 
  } 

Voir aussi

Les ressources , ResourceCreate(), ResourceSave(), TextOut()