CScrollV

CScrollV sınıfı, "Dikey kaydırma çubuğu" karmaşık kontrolünün bir sınıfıdır.

Açıklama

CScrollV sınıfı, dikey kaydırma çubukları oluşturmak için tasarlanmıştır.

Bildirim

   class CScrollV : public CScroll

Başlık

   #include <Controls\Scrolls.mqh>

Kalıtım hiyerarşisi

  CObject

      CWnd

          CWndContainer

              CScroll

                  CScrollV

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

ControlsScrollV

Sınıf Yöntemleri

Bağımlı kontroller

 

CreateInc

Kaydırma çubuğunun artırma düğmesini oluşturur

CreateDec

Kaydırma çubuğunun azaltma düğmesini oluşturur

CreateThumb

Kaydırma çubuğunun başparmak düğmesini (taşınabilir kontrol) oluşturur

İçsel olay işleyicileri

 

OnResize

"Resize" (boyutlandırma) olayının işleyicisi

OnChangePos

"ChangePosition" (konum değişimi) olayı için olay işleyici

Sürükleme olayı işleyicileri

 

OnThumbDragStart

"ThumbDragStart" olay işleyicisi

OnThumbDragProcess

"ThumbDragProcess" olay işleyicisi

OnThumbDragEnd

"ThumbDragEnd" olay işleyicisi

Konum

 

CalcPos

Kaydırma çubuğu konumunun koordinatlarını alır

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, Show, Hide, Save, Load

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

Create, OnEvent, MinPos, MinPos, MaxPos, MaxPos, CurrPos, CurrPos

Dikey kaydırma çubuklu panel oluşturma örneği:

//+------------------------------------------------------------------+
//|                                              ControlsScrollV.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 "Kontrol Panelleri ve İletişim Kutuları. Gösterim sınıfı CScrollV"
#include <Controls\Dialog.mqh>
#include <Controls\Scrolls.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:
   CScrollV          m_scroll_v;                     // CScrollV 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              CreateScrollV(void);
   //--- bağımlı olayların işleyicileri
   void              OnScrollInc(void);
   void              OnScrollDec(void);
  };
//+------------------------------------------------------------------+
//| Olay İşleme                                                      |
//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CControlsDialog)
ON_EVENT(ON_SCROLL_INC,m_scroll_v,OnScrollInc)
ON_EVENT(ON_SCROLL_DEC,m_scroll_v,OnScrollDec)
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(!CreateScrollV())
      return(false);
//--- başarılı
   return(true);
  }
//+------------------------------------------------------------------+
//| CScrollsV nesnesini oluştur                                      |
//+------------------------------------------------------------------+
bool CControlsDialog::CreateScrollV(void)
  {
//--- koordinatlar
   int x1=INDENT_LEFT;
   int y1=INDENT_TOP;
   int x2=x1+18;
   int y2=y1+LIST_HEIGHT;
//--- oluştur
   if(!m_scroll_v.Create(m_chart_id,m_name+"ScrollV",m_subwin,x1,y1,x2,y2))
      return(false);
//--- kaydırma çubuğunu ayarla
   m_scroll_v.MinPos(0);
//--- kaydırma çubuğunu ayarla
   m_scroll_v.MaxPos(10);
   if(!Add(m_scroll_v))
      return(false);
   Comment("Position of the scrollbar ",m_scroll_v.CurrPos());
//--- başarılı
   return(true);
  }
//+------------------------------------------------------------------+
//| Olay İşleyici                                                    |
//+------------------------------------------------------------------+
void CControlsDialog::OnScrollInc(void)
  {
   Comment("Position of the scrollbar ",m_scroll_v.CurrPos());
  }
//+------------------------------------------------------------------+
//| Olay İşleyici                                                    |
//+------------------------------------------------------------------+
void CControlsDialog::OnScrollDec(void)
  {
   Comment("Position of the scrollbar ",m_scroll_v.CurrPos());
  }
//+------------------------------------------------------------------+
//| 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)
  {
//--- yorumları sil
   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);
  }