CBmpButton

La classe CBmpButton est une classe de contrôle simple, basé sur l'objet graphique "Etiquette Bitmap".

Description

La classe CBmpButton permet la création de boutons avec une image.

Déclaration

   class CBmpButton : public CWndObj

Titre

   #include <Controls\BmpButton.mqh>

Hiérarchie d'héritage

  CObject

      CWnd

          CWndObj

              CBmpButton

Résultat du code fournit ci-dessous :

ControlsBmpButton

Méthodes de Classe

Create

 

Create

Crée le contrôle

Propriétés

 

Border

Retourne/Définit la propriété "Border" du contrôle

BmpNames

Définit le nom des fichiers bmp du contrôle

BmpOffName

Retourne/Définit le nom du fichier bmp pour l'état Eteint (Off)

BmpOnName

Retourne/Définit le nom du fichier bmp pour l'état Allumé (On)

BmpPassiveName

Retourne/Définit le nom du fichier bmp pour l'état passif

BmpActiveName

Retourne/Définit le nom du fichier bmp pour l'état actif

Etat

 

Pressed

Retourne/Définit l'état du contrôle

Locking

Retourne/Définit la propriété "Locking" du contrôle

Gestionnaires d'évènements internes

 

OnSetZOrder

Gestionnaire d'évènement "SetZOrder"

OnCreate

Gestionnaire d'évènement "Create"

OnShow

Gestionnaire d'évènement "Show"

OnHide

Gestionnaire d'évènement "Hide"

OnMove

Gestionnaire d'évènement "Move"

OnChange

Gestionnaire d'évènement "Change"

OnActivate

Gestionnaire d'évènement "Activate"

OnDeactivate

Gestionnaire d'évènement "Deactivate"

OnMouseDown

Gestionnaire d'évènement "MouseDown"

OnMouseUp

Gestionnaire d'évènement "MouseUp"

Méthodes héritées de la classe CObject

Prev, Prev, Next, Next, Save, Load, Type, Compare

Méthodes héritées de la classe CWnd

Destroy, OnMouseEvent, Name, ControlsTotal, Control, ControlFind, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Move, Move, Shift, Contains, Contains, Alignment, Align, Id, Id, IsEnabled, Enable, Disable, IsVisible, Visible, Show, Hide, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop

Méthodes héritées de la classe CWndObj

OnEvent, Text, Text, Color, Color, ColorBackground, ColorBackground, ColorBorder, ColorBorder, Font, Font, FontSize, FontSize, ZOrder, ZOrder

Exemple de création d'un panneau avec une Etiquette Bitmap :

//+------------------------------------------------------------------+
//|                                            ControlsBmpButton.mq5 |
//|                         Copyright 2000-2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property description "Panneaux de Contrôle et Dialogues. Classe de démonstration CBmpButton"
#include <Controls\Dialog.mqh>
#include <Controls\BmpButton.mqh>
//+------------------------------------------------------------------+
//| définition                                                       |
//+------------------------------------------------------------------+
//--- placement
#define INDENT_LEFT                         (11)      // indentation depuis la gauche (avec respect de la largeur de la bordure)
#define INDENT_TOP                          (11)      // indentation depuis la sommet (avec respect de la largeur de la bordure)
#define INDENT_RIGHT                        (11)      // indentation depuis la droite (avec respect de la largeur de la bordure)
#define INDENT_BOTTOM                       (11)      // indentation depuis le fond (avec respect de la largeur de la bordure)
#define CONTROLS_GAP_X                      (5)       // coordonnée X du gap
#define CONTROLS_GAP_Y                      (5)       // coordonnée Y du gap
//--- pour les boutons
#define BUTTON_WIDTH                        (100)     // largeur
#define BUTTON_HEIGHT                       (20)      // hauteur
//--- pour la zone d'indication
#define EDIT_HEIGHT                         (20)      // hauteur
//--- pour les contrôles de type groupe
#define GROUP_WIDTH                         (150)     // largeur
#define LIST_HEIGHT                         (179)     // hauteur
#define RADIO_HEIGHT                        (56)      // hauteur
#define CHECK_HEIGHT                        (93)      // hauteur
//+------------------------------------------------------------------+
//| Class CControlsDialog                                            |
//| Usage : dialogue principale de l'application des Contrôles   |
//+------------------------------------------------------------------+
class CControlsDialog : public CAppDialog
  {
private:
   CBmpButton        m_bmpbutton1;                    // Objet CBmpButton
   CBmpButton        m_bmpbutton2;                    // Objet CBmpButton
 
public:
                     CControlsDialog(void);
                    ~CControlsDialog(void);
   //--- création
   virtual bool      Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2);
   //--- gestionnaire d'évènement du graphique
   virtual bool      OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam);
 
protected:
   //--- crée des contrôles dépendants
   bool              CreateBmpButton1(void);
   bool              CreateBmpButton2(void);
   //--- gestionnaires des évènements de contrôle dépendants
   void              OnClickBmpButton1(void);
   void              OnClickBmpButton2(void);
  };
//+------------------------------------------------------------------+
//| Gestionnaire d'évènement                                         |
//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CControlsDialog)
ON_EVENT(ON_CLICK,m_bmpbutton1,OnClickBmpButton1)
ON_EVENT(ON_CLICK,m_bmpbutton2,OnClickBmpButton2)
EVENT_MAP_END(CAppDialog)
//+------------------------------------------------------------------+
//| Constructeur                                                     |
//+------------------------------------------------------------------+
CControlsDialog::CControlsDialog(void)
  {
  }
//+------------------------------------------------------------------+
//| Destructeur                                                      |
//+------------------------------------------------------------------+
CControlsDialog::~CControlsDialog(void)
  {
  }
//+------------------------------------------------------------------+
//| Création                                                         |
//+------------------------------------------------------------------+
bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2)
  {
   if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2))
      return(false);
//--- crée des contrôles dépendants
   if(!CreateBmpButton1())
      return(false);
   if(!CreateBmpButton2())
      return(false);
//--- succès
   return(true);
  }
//+------------------------------------------------------------------+
//| Crée le bouton "BmpButton1"                                   |
//+------------------------------------------------------------------+
bool CControlsDialog::CreateBmpButton1(void)
  {
//--- coordonnées
   int x1=INDENT_LEFT;
   int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y);
   int x2=x1+BUTTON_WIDTH;
   int y2=y1+BUTTON_HEIGHT;
//--- création
   if(!m_bmpbutton1.Create(m_chart_id,m_name+"BmpButton1",m_subwin,x1,y1,x2,y2))
      return(false);
//--- définit le nom des fichiers bmp du contrôle CBmpButton
   m_bmpbutton1.BmpNames("\\Images\\euro.bmp","\\Images\\dollar.bmp");
   if(!Add(m_bmpbutton1))
      return(false);
//--- succès
   return(true);
  }
//+------------------------------------------------------------------+
//| Crée le bouton fixe "BmpButton2"                             |
//+------------------------------------------------------------------+
bool CControlsDialog::CreateBmpButton2(void)
  {
//--- coordonnées
   int x1=INDENT_LEFT+2*(BUTTON_WIDTH+CONTROLS_GAP_X);
   int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y);
   int x2=x1+BUTTON_WIDTH;
   int y2=y1+BUTTON_HEIGHT;
//--- création
   if(!m_bmpbutton2.Create(m_chart_id,m_name+"BmpButton2",m_subwin,x1,y1,x2,y2))
      return(false);
//--- définit le nom des fichiers bmp du contrôle CBmpButton
   m_bmpbutton2.BmpNames("\\Images\\euro.bmp","\\Images\\dollar.bmp");
   if(!Add(m_bmpbutton2))
      return(false);
   m_bmpbutton2.Locking(true);
//--- succès
   return(true);
  }
//+------------------------------------------------------------------+
//| Gestionnaire d'évènement                                         |
//+------------------------------------------------------------------+
void CControlsDialog::OnClickBmpButton1(void)
  {
   Comment(__FUNCTION__);
  }
//+------------------------------------------------------------------+
//| Gestionnaire d'évènement                                         |
//+------------------------------------------------------------------+
void CControlsDialog::OnClickBmpButton2(void)
  {
   if(m_bmpbutton2.Pressed())
      Comment(__FUNCTION__+" L'état du contrôle est : On");
   else
      Comment(__FUNCTION__+" L'état du contrôle est : Off");
  }
//+------------------------------------------------------------------+
//| Variables Globales                                               |
//+------------------------------------------------------------------+
CControlsDialog ExtDialog;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'Expert       |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- crée le dialogue de l'application
   if(!ExtDialog.Create(0,"Controls",0,40,40,380,344))
      return(INIT_FAILED);
//--- lance l'application
   ExtDialog.Run();
//--- succès
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Fonction de désinitialisation de l'Expert                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- 
   Comment("");
//--- détruit le dialogue
   ExtDialog.Destroy(reason);
  }
//+------------------------------------------------------------------+
//| Fonction d'évènement du graphique                                |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // identifiant de l'évènement  
                  const long& lparam,   // paramètre d'évènement de type long
                  const double& dparam, // paramètre d'évènement de type double
                  const string& sparam) // paramètre d'évènement de type string
  {
   ExtDialog.ChartEvent(id,lparam,dparam,sparam);
  }