인사말. 주제에있는 사람들이 나에게 문제를 해결하는 방법을 모릅니다. 저는 MT4 에서 사용할 수 있는 패널과 대화 상자를 만들기 위한 클래스를 사용하여 MT4에서 저 자신을 위한 거래 패널을 작성하고 있습니다. 거래 시가에 대한 데이터를 입력하고 SL 및 TP를 설정하기 위해CEdit 클래스를 사용합니다(" Edit field " 개체를 기반으로 하는 간단한 제어 요소의 클래스임). 대안은CSpinEdit 클래스 (콤보 컨트롤 "증가-감소 필드"의 클래스)이지만 정수 데이터에 적용됩니다. 일반적으로 사용하는 것을 선호합니다.CEdit, 증분이 필요하지 않기 때문입니다.
그렇다면CEdit 입력 필드에 숫자만 입력할 수 있도록 하는 방법은 무엇입니까? 동시에 입력 마스크도 있는 것이 바람직합니다. MT4 터미널에 구현되어 있으므로 "새 주문"을 클릭하면 손절매 및 이익 실현 필드가 다음과 같은 마스크에 따라 형식이 지정되는 것을 볼 수 있습니다. 0.0000 등.CEdit로 동일한 작업을 수행하는 방법은 무엇입니까? 나는 아직 수업 주제에 대해 깊이 이해하지 못했으며 일부는 이해할 수 없습니다.
인사말. 주제에있는 사람들이 나에게 문제를 해결하는 방법을 모릅니다. 저는 MT4 에서 사용할 수 있는 패널과 대화 상자를 만들기 위한 클래스를 사용하여 MT4에서 저 자신을 위한 거래 패널을 작성하고 있습니다. 거래 시가에 대한 데이터를 입력하고 SL 및 TP를 설정하기 위해CEdit 클래스("Edit field" 개체를 기반으로 하는 간단한 제어 요소의 클래스)를 사용합니다. 대안은CSpinEdit 클래스 (콤보 컨트롤 "증가-감소 필드"의 클래스)이지만 정수 데이터에 적용됩니다. 일반적으로 사용하는 것을 선호합니다.CEdit, 증분이 필요하지 않기 때문입니다.
그렇다면CEdit 입력 필드에 숫자만 입력할 수 있도록 하는 방법은 무엇입니까? 동시에 입력 마스크도 있는 것이 바람직합니다. MT4 터미널에 구현되어 있으므로 "새 주문"을 클릭하면 손절매 및 이익실현 필드가 다음과 같은 마스크에 따라 형식이 지정되는 것을 볼 수 있습니다. 0.0000 등.CEdit로 동일한 작업을 수행하는 방법은 무엇입니까? 저는 아직 수업 주제에 대해 깊이 이해하지 못했고 일부는 이해할 수 없습니다.
다음은 CEdit 컨트롤이 있는 대화 상자 패널입니다(명확성을 위해 예제는 단일 파일 형식으로 작성되었습니다). 입력한 문자는 패널에서 확인됩니다. 숫자만 허용됩니다.
//+------------------------------------------------------------------+//| ControlsEdit.mq5 |//| Copyright 2015, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2015, MetaQuotes Software Corp."#property link"http://www.mql5.com"#property version"1.00"#property description"Панель индикации и диалогов управления. Демонстрация работы класса CEdit"#include <Controls\Dialog.mqh>
#include <Controls\Edit.mqh>
//+------------------------------------------------------------------+//| defines |//+------------------------------------------------------------------+//--- indents and gaps#define INDENT_LEFT ( 11 ) // indent from left (with allowance for border width)#define INDENT_TOP ( 11 ) // indent from top (with allowance for border width)#define INDENT_RIGHT ( 11 ) // indent from right (with allowance for border width)#define INDENT_BOTTOM ( 11 ) // indent from bottom (with allowance for border width)#define CONTROLS_GAP_X ( 5 ) // gap by X coordinate#define CONTROLS_GAP_Y ( 5 ) // gap by Y coordinate//--- for buttons#define BUTTON_WIDTH ( 100 ) // size by X coordinate#define BUTTON_HEIGHT ( 20 ) // size by Y coordinate//--- for the indication area#define EDIT_HEIGHT ( 20 ) // size by Y coordinate//--- for group controls#define GROUP_WIDTH ( 150 ) // size by X coordinate#define LIST_HEIGHT ( 179 ) // size by Y coordinate#define RADIO_HEIGHT ( 56 ) // size by Y coordinate#define CHECK_HEIGHT ( 93 ) // size by Y coordinate//+------------------------------------------------------------------+//| Class CControlsDialog |//| Usage: main dialog of the Controls application |//+------------------------------------------------------------------+class CControlsDialog : public CAppDialog
{
private :
CEdit m_edit; // CEdit объектpublic :
CControlsDialog( void );
~CControlsDialog( void );
//--- createvirtualbool Create( constlong chart, conststring name, constint subwin, constint x1, constint y1, constint x2, constint y2);
//--- chart event handler//--- chart event handlervirtualbool OnEvent( constint id, constlong &lparam, constdouble &dparam, conststring &sparam);
protected :
//--- create dependent controlsbool CreateEdit( void );
//--- handlers of the dependent controls eventsvoid OnChangeEdit( void );
};
//+------------------------------------------------------------------+//| Constructor |//+------------------------------------------------------------------+
CControlsDialog::CControlsDialog( void )
{
}
//+------------------------------------------------------------------+//| Destructor |//+------------------------------------------------------------------+
CControlsDialog::~CControlsDialog( void )
{
}
//+------------------------------------------------------------------+//| Event Handling |//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CControlsDialog)
ON_EVENT(ON_END_EDIT,m_edit,OnChangeEdit)
EVENT_MAP_END(CAppDialog)
//+------------------------------------------------------------------+//| Create |//+------------------------------------------------------------------+bool CControlsDialog::Create( constlong chart, conststring name, constint subwin, constint x1, constint y1, constint x2, constint y2)
{
if (!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2))
return ( false );
//--- create dependent controlsif (!CreateEdit())
return ( false );
//--- succeedreturn ( true );
}
//+------------------------------------------------------------------+//| Create the display field |//+------------------------------------------------------------------+bool CControlsDialog::CreateEdit( void )
{
//--- coordinatesint x1=INDENT_LEFT;
int y1=INDENT_TOP;
int x2=ClientAreaWidth()-INDENT_RIGHT;
int y2=y1+EDIT_HEIGHT;
//--- createif (!m_edit.Create(m_chart_id,m_name+ "Edit" ,m_subwin,x1,y1,x2,y2))
return ( false );
//--- разрешим редактировать сожержимоеif (!m_edit.ReadOnly( false ))
return ( false );
if (!Add(m_edit))
return ( false );
//--- succeedreturn ( true );
}
//+------------------------------------------------------------------+//| Global Variables |//+------------------------------------------------------------------+
CControlsDialog ExtDialog;
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit ()
{
//--- create application dialogif (!ExtDialog.Create( 0 , "Controls" , 0 , 40 , 40 , 380 , 344 ))
return ( INIT_FAILED );
//--- run application
ExtDialog.Run();
//--- succeedreturn ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit ( constint reason)
{
//--- очистим комментарииComment ( "" );
//--- destroy dialog
ExtDialog.Destroy(reason);
}
//+------------------------------------------------------------------+//| Expert chart event function |//+------------------------------------------------------------------+voidOnChartEvent ( constint id, // event ID constlong & lparam, // event parameter of the long typeconstdouble & dparam, // event parameter of the double typeconststring & sparam) // event parameter of the string type
{
ExtDialog.ChartEvent(id,lparam,dparam,sparam);
}
//+------------------------------------------------------------------+//| Event handler |//+------------------------------------------------------------------+void CControlsDialog::OnChangeEdit( void )
{
//--- allowed to use 0 to 9 digits onlystring text =m_edit.Text();
int text_len = StringLen (text);
string sample = "0123456789" ;
for ( int i= 0 ;i<text_len;i++)
{
string substr= StringSubstr (text,i, 1 );
if ( StringFind (sample,substr, 0 )==- 1 )
{
m_edit.Text( "Допустымы только цифры" );
break ;
}
}
}
//+------------------------------------------------------------------+
글쎄, 지금은 휴대 전화에서 다음과 같이 말할 것입니다. 코드에 경고가 있고 인쇄가 있는 주기가 있는 곳에서 구조가 이미 채워져 있습니다.
경고 는 On Start() 함수의 루프 외부에 있습니다.
경고는 On Start() 함수의 루프 외부에 있습니다.
경고는 On Start() 함수의 루프 외부에 있습니다.
글쎄, 나는 그것을 함수로 배열하는 방법을 대략적으로 보여주고 있습니다. 그런 다음 필요할 때 전화하세요.
할 수 있다.
놀라운 기능.
매우 감사합니다.
이것에 대해 더 읽을 수 있는 곳을 알려주시겠습니까?
이제 URL에 텍스트를 게시하려고 하는데 도움말에 제공된 코드가 내 사이트에서도 로그인을 원하지 않습니다.
로그인하여 텍스트를 게시하기 위해 URL 주소 외에 타사 사이트에 대해 어떤 정보를 수집해야 하는지 궁금합니다.
이것에 대해 더 읽을 수 있는 곳을 알려주시겠습니까?
여기
인사말.
주제에있는 사람들이 나에게 문제를 해결하는 방법을 모릅니다.
저는 MT4 에서 사용할 수 있는 패널과 대화 상자를 만들기 위한 클래스를 사용하여 MT4에서 저 자신을 위한 거래 패널을 작성하고 있습니다.
거래 시가에 대한 데이터를 입력하고 SL 및 TP를 설정하기 위해 CEdit 클래스를 사용합니다(" Edit field " 개체를 기반으로 하는 간단한 제어 요소의 클래스임). 대안은 CSpinEdit 클래스 (콤보 컨트롤 "증가-감소 필드"의 클래스)이지만 정수 데이터에 적용됩니다. 일반적으로 사용하는 것을 선호합니다. CEdit, 증분이 필요하지 않기 때문입니다.
그렇다면 CEdit 입력 필드에 숫자만 입력할 수 있도록 하는 방법은 무엇입니까? 동시에 입력 마스크도 있는 것이 바람직합니다. MT4 터미널에 구현되어 있으므로 "새 주문"을 클릭하면 손절매 및 이익 실현 필드가 다음과 같은 마스크에 따라 형식이 지정되는 것을 볼 수 있습니다. 0.0000 등. CEdit로 동일한 작업을 수행하는 방법은 무엇입니까? 나는 아직 수업 주제에 대해 깊이 이해하지 못했으며 일부는 이해할 수 없습니다.
인사말.
주제에있는 사람들이 나에게 문제를 해결하는 방법을 모릅니다.
저는 MT4 에서 사용할 수 있는 패널과 대화 상자를 만들기 위한 클래스를 사용하여 MT4에서 저 자신을 위한 거래 패널을 작성하고 있습니다.
거래 시가에 대한 데이터를 입력하고 SL 및 TP를 설정하기 위해 CEdit 클래스("Edit field" 개체를 기반으로 하는 간단한 제어 요소의 클래스)를 사용합니다. 대안은 CSpinEdit 클래스 (콤보 컨트롤 "증가-감소 필드"의 클래스)이지만 정수 데이터에 적용됩니다. 일반적으로 사용하는 것을 선호합니다. CEdit, 증분이 필요하지 않기 때문입니다.
그렇다면 CEdit 입력 필드에 숫자만 입력할 수 있도록 하는 방법은 무엇입니까? 동시에 입력 마스크도 있는 것이 바람직합니다. MT4 터미널에 구현되어 있으므로 "새 주문"을 클릭하면 손절매 및 이익실현 필드가 다음과 같은 마스크에 따라 형식이 지정되는 것을 볼 수 있습니다. 0.0000 등. CEdit로 동일한 작업을 수행하는 방법은 무엇입니까? 저는 아직 수업 주제에 대해 깊이 이해하지 못했고 일부는 이해할 수 없습니다.
다음은 CEdit 컨트롤이 있는 대화 상자 패널입니다(명확성을 위해 예제는 단일 파일 형식으로 작성되었습니다). 입력한 문자는 패널에서 확인됩니다. 숫자만 허용됩니다.
여기
이 책은 판매용이 아니지만 공개 도메인에서 발견되었습니다.
고맙습니다.