CComboBox

CComboBox, ComboBox karmaşık kontrolü için tasarlanmış bir sınıftır.

Açıklama

ComboBox, bir statik kontrolle kombine olan, seçim yapmak için tasarlanmış bir liste kutusundan oluşur. Liste-kutusu bölümü, kontrolün yan tarafında bulunan aşağı sürükleme oku kullanılarak aşağı çekilebilir.

Bildirim

   class CComboBox : public CWndContainer

Başlık

   #include <Controls\ComboBox.mqh>

Kalıtım hiyerarşisi

  CObject

      CWnd

          CWndContainer

              CComboBox

Kodun sonucu aşağıda verilmiştir:

ControlsComboBox

Sınıf Yöntemleri

Oluştur

 

Create

Kontrolü oluşturur

Çizelge olay işleyicileri

 

OnEvent

Tüm çizelge olayları için olay işleyicisi

Ekleme

 

AddItem

Bir bileşen ekler

Ayarlar

 

ListViewItems

Kontrol üzerinde gösterilen bileşenlerin sayısını ayarlar

Veri

 

Select

Mevcut listeden indisine göre eleman seçer

SelectByText

Mevcut listeden metnine göre eleman seçer

SelectByValue

Mevcut listeden değerine göre eleman seçer

Salt okunur veri

 

Value

Mevcut liste bileşeninin değerini alır

Bağımlı kontroller

 

CreateEdit

Bağımlı bir kontrol (düzen) oluşturur

CreateButton

Bağımlı bir kontrol (düğme) oluşturur

CreateList

Bağımlı bir kontrol (liste görünümü) oluşturur

Bağımlı kontroller için olay işleyicileri

 

OnClickEdit

"ClickEdit" sanal olay işleyicisi

OnClickButton

"ClickButton" sanal sanal olay işleyicisi

OnChangeList

"ChangeList" sanal olay işleyicisi

Göster/Gizle

 

ListShow

Bileşenlerin listesini gösterir

ListHide

Bileşenlerin listesini gizler

Sınıftan türetilen yöntemler CObject

Prev, Prev, Next, Next, Type, Compare

Sınıftan türetilen yöntemler 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

Sınıftan türetilen yöntemler CWndContainer

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

Combobox kontrolü ile panel oluşturma örneği:

//+------------------------------------------------------------------+
//|                                             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 "Kontrol Panelleri ve İletişim Kutuları. Gösterim sınıfı CComboBox"
#include <Controls\Dialog.mqh>
#include <Controls\ComboBox.mqh>
//+------------------------------------------------------------------+
//| tanımlar                                                         |
//+------------------------------------------------------------------+
//--- girintiler ve boşluklar
#define INDENT_LEFT                         (11)      // sol girinti (izin verilen çerçeve genişliği ile)
#define INDENT_TOP                          (11)      // üst girinti (izin verilen çerçeve genişliği ile)
#define INDENT_RIGHT                        (11)      // sağ girinti (izin verilen çerçeve genişliği ile)
#define INDENT_BOTTOM                       (11)      // alt girinti (izin verilen çerçeve genişliği ile)
#define CONTROLS_GAP_X                      (5)       // X koordinatıyla boşluk
#define CONTROLS_GAP_Y                      (5)       // Y kordinatıyla boşluk
//--- düğmeler için
#define BUTTON_WIDTH                        (100)     // X koordinatıyla genişlik
#define BUTTON_HEIGHT                       (20)      // Y koordinatıyla genişlik
//--- gösterge alanı için
#define EDIT_HEIGHT                         (20)      // Y koordinatıyla genişlik
//--- grup kontrolleri için
#define GROUP_WIDTH                         (150)     // X koordinatıyla genişlik
#define LIST_HEIGHT                         (179)     // Y koordinatıyla genişlik
#define RADIO_HEIGHT                        (56)      // Y koordinatıyla genişlik
#define CHECK_HEIGHT                        (93)      // Y koordinatıyla genişlik
//+------------------------------------------------------------------+
//| CControlsDialog Sınıfı                                           |
//| Kullanım: Kontroller uygulamasının ana iletişim kutusu           |
//+------------------------------------------------------------------+
class CControlsDialog : public CAppDialog
  {
private:
   CComboBox         m_combo_box;;                    // CComboBox nesnesi
 
public:
                     CControlsDialog(void);
                    ~CControlsDialog(void);
   //--- oluştur
   virtual bool      Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2);
   //--- çizelge olay işleyicisi
   virtual bool      OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam);
 
protected:
   //--- bağımlı kontroller oluştur
   bool              CreateComboBox(void);
   //--- bağımlı olayların işleyicileri
   void              OnChangeComboBox(void);
  };
//+------------------------------------------------------------------+
//| Olay İşleme                                                      |
//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CControlsDialog)
ON_EVENT(ON_CHANGE,m_combo_box,OnChangeComboBox)
EVENT_MAP_END(CAppDialog)
//+------------------------------------------------------------------+
//| Yapıcı                                                           |
//+------------------------------------------------------------------+
CControlsDialog::CControlsDialog(void)
  {
  }
//+------------------------------------------------------------------+
//| Yıkıcı                                                           |
//+------------------------------------------------------------------+
CControlsDialog::~CControlsDialog(void)
  {
  }
//+------------------------------------------------------------------+
//| Oluştur                                                          |
//+------------------------------------------------------------------+
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);
//--- bağımlı kontroller oluştur
   if(!CreateComboBox())
      return(false);
//--- başarılı
   return(true);
  }
//+------------------------------------------------------------------+
//| "ComboBox" bileşenini oluştur                                    |
//+------------------------------------------------------------------+
bool CControlsDialog::CreateComboBox(void)
  {
//--- koordinatlar
   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;
//--- oluştur
   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);
//--- dizgilerle doldur
   for(int i=0;i<16;i++)
      if(!m_combo_box.ItemAdd("Item "+IntegerToString(i)))
         return(false);
//--- başarılı
   return(true);
  }
//+------------------------------------------------------------------+
//| Olay İşleyici                                                    |
//+------------------------------------------------------------------+
void CControlsDialog::OnChangeComboBox(void)
  {
   Comment(__FUNCTION__+" \""+m_combo_box.Select()+"\"");
  }
//+------------------------------------------------------------------+
//| Global Variables                                                 |
//+------------------------------------------------------------------+
CControlsDialog ExtDialog;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Uygulama iletişim kutusunu göster
   if(!ExtDialog.Create(0,"Controls",0,40,40,380,344))
      return(INIT_FAILED);
//--- uygulamayı çalıştır
   ExtDialog.Run();
//--- başarılı
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- 
   Comment("");
//--- iletişim kutusunu yok et
   ExtDialog.Destroy(reason);
  }
//+------------------------------------------------------------------+
//| Expert chart event function                                      |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // olay tanıtıcısı 
                  const long& lparam,   // long tipli olay parametresi
                  const double& dparam, // double tipli olay parametresi
                  const string& sparam) // string tipli olay parametresi
  {
   ExtDialog.ChartEvent(id,lparam,dparam,sparam);
  }