기고글 토론 "CCanvas 클래스 공부하기. 투명 개체를 그리는 방법" - 페이지 2

 
denkir:

문제는 바로 이것입니다. 그래프에서 캔버스를 움직일 때 가장 좋은 구현 방법은 무엇일까요? 메서드 같은 것 말입니다:

"캔버스" - 표준 OBJ_BITMAP_LABEL 또는 OBJ_BITMAP을 생성합니다 . 도움말에는 차트에 배치하는 방법에 대한 함수가 있습니다.

 //+------------------------------------------------------------------+
//|| "그래픽 레이블" 개체를 이동합니다.
//+------------------------------------------------------------------+
bool BitmapLabelMove(const long   chart_ID=0,      // 차트 ID
                     const string name="BmpLabel", // 태그 이름
                     const int    x=0,             // X축 좌표
                     const int    y=0)             // Y축 좌표
  {
//--- 오류 값 재설정
   ResetLastError();
//--- 개체 이동
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x))
     {
      Print(__FUNCTION__,
            ": 객체의 X 좌표를 이동하지 못했습니다! 오류 코드 = ",GetLastError());
      return(false);
     }
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y))
     {
      Print(__FUNCTION__,
            ": 객체의 Y 좌표를 이동하지 못했습니다! 오류 코드 = ",GetLastError());
      return(false);
     }
//--- 실행 성공
   return(true);
  }

위의 설명을 한 번에 알아차리지 못했습니다 :) - 실제로는 ZORDER와 동일하며, X와 Y만 다릅니다.

 
MigVRN:

"캔버스" - 표준 객체_비트맵_라벨 또는 객체_비트맵을 생성합니다 . 도움말에 차트에 배치하는 함수가 있습니다.

위의 설명을 한 번에 알아차리지 못했습니다 :) - 실제로는 ZORDER와 동일하며, X와 Y만 다릅니다.

아하, 고마워요... 작동했어요... 오브젝트무브를 직접 사용해봤는데...

트레이딩, 자동매매 시스템 및 트레이딩 전략 테스트 포럼

"CCanvas 수업 배우기. 그래픽 객체의 투명성 실현" 문서 토론

바라바시카크브엔, 2015.03.10 12:00 AM

그리고 움직이는 목적은 무엇입니까? 캔버스에 그림을 다시 그리는 것이 더 낫지 않을까요?
캔버스를 사용하여 패널을 만들고 있습니다.... 차트에서 가능한 한 멀리 이동해야합니다....
 
denkir:

네, 감사합니다, 작동했습니다... 오브젝트무브를 직접 사용해봤는데...

캔버스의 도움으로 패널을 만들고 있습니다... 차트에서 가능한 한 멀리 이동해야합니다...
그리고 패널이 표준 대화를 기반으로 만들어지면? 그러면 대화 상자에서 생성되고 추가 된 모든 요소가 대화 상자와 함께 드래그됩니다.
 
barabashkakvn:
표준 대화를 기반으로 패널을 만들면 어떻게 되나요? 그러면 대화 상자에서 생성되어 추가된 모든 요소가 대화 상자와 함께 드래그됩니다.
네, 편리한 기능입니다... 동의합니다. 지금까지 그렇게 해왔는데... 하지만 패널에 사용자 정의 그래픽을 추가하는 방법에 대한 질문이 있습니다.... 일반적으로 캔버스와 같은 컨트롤 인 공개 CWndObj를 만들어야합니다. 이제이 질문에 대해 생각하고 있습니다 ...
 
denkir:
예, 편리한 기능입니다, 동의합니다..... 지금까지 그렇게 해왔지만... 하지만 패널에 사용자 정의 그래픽을 추가하는 방법에 대한 질문이있었습니다.... 일반적으로 캔버스와 같은 컨트롤을 만들어야합니다 : 공개 CWndObj. 이제이 질문에 대해 생각하고 있습니다 ...

게시물에서 비디오를보십시오.

3 월 15 일 이후에는 소스 코드에있을 것입니다.

 
denkir:
예, 편리한 기능입니다, 동의합니다..... 지금까지 그렇게 해왔지만... 하지만 패널에 사용자 정의 그래픽을 추가하는 방법에 대한 질문이있었습니다.... 일반적으로 캔버스와 같은 컨트롤을 만들어야합니다 : 공개 CWndObj. 이제이 질문에 대해 생각하고 있습니다 ...

"사용자 정의 그래픽"이란 무엇을 의미합니까?

  • 프로그래머로서 직접 그리는 것을 말하는 건가요?
  • 프로그램 사용자로부터 그림을 가져와서 이 그림이 캔버스에 표시되어야 한다는 뜻인가요?
 
barabashkakvn:

"커스텀 그래픽"이라니 무슨 뜻인가요?

  • 프로그래머가 직접 그린다는 뜻인가요?
  • 내 말은, 프로그램 사용자로부터 그림을 가져와서 이 그림이 캔버스에 표시되어야 한다는 건가요?
네, 모호했습니다..... CCanvas 클래스의 메서드를 사용하여 동적으로 다른 그림을 만들 수있는 기능을 의미했습니다 ...
 

블라디미르, 또 하나 물어볼 게 있어요.

CAppDialog 유형의 패널이 있습니다. 그 요소 중 하나가 CBmpButton유형의그래픽 레이블이라고 가정 해 보겠습니다 . 그래서 캔버스를 만들고 지정된 레이블과 연결하는 방법이 있습니까? 목표는 사용자 정의 그래픽 기능을 갖춘 제어 가능한 패널 요소를 갖는 것입니다...?

고마워요.

 
denkir:

블라디미르, 또 하나 물어볼 게 있어요.

CAppDialog 유형의 패널이 있습니다. 그 요소 중 하나가 CBmpButton유형의그래픽 레이블이라고 가정 해 보겠습니다 . 그래서 캔버스를 만들고 지정된 레이블과 연결하는 방법이 있습니까? 목표는 사용자 정의 그래픽 기능을 갖춘 제어 가능한 패널 요소를 갖는 것입니다...?

감사합니다...

Create 메서드를 통해 그래픽 객체에 연결하지 않고 캔버스(예: 여러 개의 캔버스)를 만든 다음 이러한 리소스를 BmpButton에 할당할 수 있습니다. 애니메이션을 만들 수도 있습니다. 그건 그렇고, 애니메이션에 대해 오랫동안 생각하고 싶습니다.
 

블라디미르, 팁 주셔서 감사합니다, 모든 것이 잘 풀렸습니다!

네, 캔버스는 매우 강력합니다 :-)

여러분의 흥미로운 기사를 기다리고 있습니다!