CComboBox

La classe CComboBox est une classe de contrôle complexe de ComboBox (avec des contrôles inter-dépendants).

Description

Le contrôle ComboBox est constitué d'une liste et d'un contrôle statique et est prévu pour la sélection. La partie 'liste' du contrôle se déroule lorsque l'utilisateur clique sur la flèche située à côté du contrôle

Déclaration

   class CComboBox : public CWndContainer

Titre

   #include <Controls\ComboBox.mqh>

Hiérarchie d'héritage

  CObject

      CWnd

          CWndContainer

              CComboBox

Résultat du code fournit ci-dessous :

ControlsComboBox

Méthodes de Classe

Création

 

Create

Crée le contrôle

Gestionnaires d'évènements graphiques

 

OnEvent

Gestionnaire d'évènement à la base de tous les évènements graphiques

Add

 

AddItem

Ajoute un élément

Paramètres

 

ListViewItems

Définit le nombre d'éléments affichés dans le contrôle

Données

 

Select

Sélectionne l'élément courant par son index

SelectByText

Séléection l'élément courant par son texte

SelectByValue

Séléection l'élément courant par sa valeur

Données en lecture seule

 

Value

Retourne la valeur de l'élément courant de la liste

Contrôles dépendants

 

CreateEdit

Crée un contrôle dépendant (zone d'édition)

CreateButton

Crée un contrôle dépendant (bouton)

CreateList

Crée un contrôle dépendant (liste)

Gestionnaires d'évènements des contrôles dépendants

 

OnClickEdit

Gestionnaire (virtuel) de l'évènement "ClickEdit"

OnClickButton

Gestionnaire (virtuel) de l'évènement "ClickButton"

OnChangeList

Gestionnaire (virtuel) de l'évènement "ChangeList"

Affichage/Masquage

 

ListShow

Affiche la liste des éléments

ListHide

Cache la liste des éléments

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

Prev, Prev, Next, Next, Type, Compare

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

Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, 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 CWndContainer

Destroy, OnMouseEvent, ControlsTotal, Control, ControlFind, MouseFocusKill, Add, Add, Delete, Delete, Move, Move, Shift, Id, Enable, Disable, Hide

Example of creating a panel with Combobox control:

//+------------------------------------------------------------------+
//|                                             ControlsComboBox.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, 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 CComboBox"
#include <Controls\Dialog.mqh>
#include <Controls\ComboBox.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:
   CComboBox         m_combo_box;;                    // Objet CComboBox
 
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              CreateComboBox(void);
   //--- gestionnaires des évènements de contrôle dépendants
   void              OnChangeComboBox(void);
  };
//+------------------------------------------------------------------+
//| Gestionnaire d'évènement                                         |
//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CControlsDialog)
ON_EVENT(ON_CHANGE,m_combo_box,OnChangeComboBox)
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(!CreateComboBox())
      return(false);
//--- succès
   return(true);
  }
//+------------------------------------------------------------------+
//| Crée l'élément "ComboBox"                                    |
//+------------------------------------------------------------------+
bool CControlsDialog::CreateComboBox(void)
  {
//--- coordonnées
   int x1=INDENT_LEFT;
   int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y)+
          (BUTTON_HEIGHT+CONTROLS_GAP_Y)+
          (EDIT_HEIGHT+CONTROLS_GAP_Y);
   int x2=x1+GROUP_WIDTH;
   int y2=y1+EDIT_HEIGHT;
//--- création
   if(!m_combo_box.Create(m_chart_id,m_name+"ComboBox",m_subwin,x1,y1,x2,y2))
      return(false);
   if(!Add(m_combo_box))
      return(false);
//--- remplissage
   for(int i=0;i<16;i++)
      if(!m_combo_box.ItemAdd("Item "+IntegerToString(i)))
         return(false);
//--- succès
   return(true);
  }
//+------------------------------------------------------------------+
//| Gestionnaire d'évènement                                         |
//+------------------------------------------------------------------+
void CControlsDialog::OnChangeComboBox(void)
  {
   Comment(__FUNCTION__+" \""+m_combo_box.Select()+"\"");
  }
//+------------------------------------------------------------------+
//| 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);
  }