기고글 토론 "MQL5 Coobook: 지표 하위 창 컨트롤 - 스크롤바"

 

새로운 기고글 MQL5 Coobook: 지표 하위 창 컨트롤 - 스크롤바 가 게재되었습니다:

계속해서 다양한 컨트롤을 탐색하고 이번에는 스크롤바에 주의를 기울이겠습니다. "MQL5 Cookbook: 지표 하위 창 컨트롤 - 버튼"라는 제목의 이전 글와 마찬가지로 모든 작업은 지표 하위 창에서 수행됩니다. OnChartEvent() 함수의 이벤트 작업에 대한 자세한 설명을 제공하는 위에서 언급한 글을 잠시 읽어보십시오. 설명을 위해 이번에는 MQL5 리소스를 사용하여 얻을 수 있는 모든 금융 상품 속성의 큰 목록에 대한 세로 스크롤 바를 만듭니다.

MQL5 프로그래밍에 대한 이전 글에서는 그래픽 개체 OBJ_LABEL(텍스트 레이블)를 사용하여 목록을 생성했습니다. 이 글에서는 캔버스를 사용하여 텍스트를 표시합니다. 이러한 접근 방식의 편리함은 많은 수의 OBJ_LABEL 개체 대신 OBJ_BITMAP_LABEL(비트맵 레이블) 하나만 사용한다는 것입니다. 캔버스에 모든 인터페이스 요소를 그릴 수 있지만 이번에는 텍스트로만 제한하겠습니다.

스크롤바는 매우 간단합니다. 일반적으로 화살표 버튼이 있지만 우리의 경우에는 기능이 아닙니다. 스크롤바는 배경과 스크롤 상자로만 구성됩니다. 커서가 스크롤 상자 위로 이동하면 스크롤 상자의 색상이 변경됩니다. 클릭하면 색상이 변경되어 사용자에게 이제 스크롤 상자가 선택되었으며 끌 수 있음을 알립니다. 스크롤 개체를 만들 때 OBJ_RECTANGLE_LABEL(사각형 레이블) 유형의 그래픽 개체를 사용합니다.

 

MQL5 Cookbook: Indicator Subwindow Controls - Scrollbar

작성자: Anatoli Kazharski

 
최근에 저는 아나톨리의 모든 글을 팔로우하고 있으며 그는 훌륭한 코더라고 말해야 합니다. 또한 그는 저와 같이 MT5 프로그래밍 언어를 처음 접하는 다른 사람들과 지식을 공유하는데, 이는 관대 한 조치라고 생각합니다. 앞으로 아나톨리가 더 많은 기사를 게시하길 바랍니다.
 

아나톨리, 수고해 주셔서 감사합니다!

질문이 있는데요, 표준 Scrolls.mqh 라이브러리의 CScroll 클래스를 사용하는 예제가 있나요?

 
thejobber:

아나톨리, 수고해 주셔서 감사합니다!

표준 라이브러리 Scrolls.mqh의 CScroll 클래스를 사용하는 예제가 있나요?

감사합니다.

저는 컨트롤이 있는 인터페이스를 개발할 때 표준 라이브러리를 사용하지 않습니다.

 
thejobber:

아나톨리, 수고해 주셔서 감사합니다!

이런 질문이 있는데, 표준 라이브러리 Scrolls.mqh에서 CScroll 클래스를 사용하는 예제가 있나요?

표준 전달에 예제가 있습니다.


 
고마워요, 여전히 이 예제를 돌리고 있었어요.... 나는 그것을 알아 차리지 못했고, 나는 한마디로 멍청했다 )))
 
시각화 로직을 조금 다시 디자인해야겠군요... 레이블을 만들고 있었는데 이전에는 그 번호를 알 수 없었고 양식에 스크롤을 추가하려고 생각했는데 이제 더 쉬울 것입니다. 하나의 CListView 개체가있을 것입니다. 좋은 아이디어를주었습니다.)
 
CListView에서 개별 항목의 색상을 변경할 수 있나요?
 

안녕하세요

MetaQuotes:

새 문서 MQL5 쿡북: 표시기 하위 창 컨트롤 - 스크롤바가 게시되었습니다:

작성자: Anatoli Kazharski

안녕하세요 아나톨리 카즈하르스키

그러나 주제는 너무 오래되었지만 훌륭하고 도움이되는 작업에 대해 감사하고 싶었습니다.

스크롤바가 필요했지만 목록보기에서 사용되는 것을 찾을 수 있었지만 여기에서 스크롤바 기능을 꺼내서 사용할 수있었습니다.

이 부분이 논리적으로는 항상 작동 할 수 있지만 작성 의도 한 것과는 다를 수 있다는 것을 알았습니다:

//+------------------------------------------------------------------+
//| 커서가 커서 위에 있을 때 스크롤 상자의 색상 변경하기 ||
//+------------------------------------------------------------------+
void ChangeScrollbarThumbColorOnHover(int x,int y)
  {
//--- 커서가 스크롤 상자 영역 내에 있으면 색상을 더 어둡게 만듭니다.
   if(x>scrollbar_thumb_x1 && x<scrollbar_thumb_x2 && y>scrollbar_thumb_y1 && y<scrollbar_thumb_x2)

      SetScrollbarThumbColor(scrollbar_thumb_color_on_hover);
//--- 커서가 스크롤 상자 경계 밖에 있는 경우
   else
     {
      //--- 마우스 버튼에서 손을 떼면 표준 스크롤 상자 색상을 설정합니다.
      if(!mouse_button_state)
         SetScrollbarThumbColor(scrollbar_thumb_color);
     }
  }

다시 한번, 훌륭한 작업에 감사드립니다.