회사에서 다가올 프로젝트에 쓰여질 그래프 라이브러리를 선택하기 위해, 여러 그래프 라이브러리를 테스트하던 중, 그 중 ChartFX ClientServer 6.2 버전도 포함되어 있었다.

ChartFX ClientServer 6.2는 Visual Studio 6.0을 지원한다고 되어 있었지만.. 어처구니 없게도 샘플 프로그램이라던지.. User Reference Guide에서도 C#과 VB에 대해서만 설명이 되어있을뿐 구할 수가 없었다.

그래서 몸소 삽질해서 그 방법을 체득하는 수 밖에 없었다.

Step 1. 우선 ChartFX ClientServer 6.2를 설치한다.
Step 2. Visual Studio 6.0에서 임의의 프로젝트를 생성한다. (아래 예제에서는 Dialog Base로 만들었다.)
Step 3. 마우스 오른쪽 버튼을 눌러서, Insert ActiveX Control... 을 누른다.


Step 4. Chart Object를 선택하고, OK 버튼을 누른다.


Step 5. 그럼, 아래 그림과 같이 Chart Object가 삽입되었음을 확인할 수 있다.

Step 6. Class Wizard를 통해 삽입된 Chart Object에 변수를 할당(Add Variables)하고자 하면, 다음과 같은 메시지가 나타나게 된다.


Chart Object가 삽입되었는데.. 이 녀석을 제어하기 위해 C++ Wrapper Class를 만들 것이냐고 묻는 내용이다. 확인을 선택한다.

Step 7. 그러면, 다수의 헤더(.h) 파일과 소스(.cpp) 파일들이 생성될 것이라 보여준다. 클래스 이름과 헤더 파일 이름, 소스 파일 이름은 자신의 구미에 맞게 설정할 수 있다.

Step 8.
아래와 같이 Wrapper Class가 생성된 것을 확인할 수 있다.

이 Wrapper Class를 어떻게 사용하였는지는 첨부된 샘플 코드를 통해 분석하기 바란다.














덧붙이는 글
1. 삽입된 Chart Object에서 마우스 오른쪽 버튼을 클릭하여, properties를 실행하면, 그래프의 여러가지 속성들을 설정할 수 있다. 그 중에 우리가 특히 눈여겨 보아야할 속성들은 다음과 같다.

Gallery : 그래프의 모양에 관한 속성이다. (Bar, Line, Pie 등 십수가지의 그래프 형태가 지원된다.)
NSeries: 서브 그래프의 개수에 관한 속성이다.
NValues: 그래프의 데이터 개수에 관한 속성이다.

나머지 속성들은 한 번씩 바꿔보고, 변화되는 것을 보면 알 수 있다.

2. 함수들의 쓰임새는 대략 C#이나 VB용 Reference Guide를 보면 알 수 있다. 그러나 제일 곤혹스러운 것은 COD_VALUES나 COD_REALTIME같은 미리 정의된 상수들의 값을 알 수 없다는 사실이다. C#이나 VB에서는 이 녀석들을 enum 타입으로 정의한 것 같은데, C++에서는 함수의 파라미터로 long 타입을 받아, 결국 이 enum 타입을 알아내기 위해 C# 프로그램에서 다음과 같은 방법을 써서 알아냈다.

MessageBox.Show(Convert.ToInt32(COD.COD_AddPoints).ToString());

덧붙여, 필요에 의해 내가 알아낸 enum 타입들을 다음과 같이 재정의해서 사용하였다.
#define COD_VALUES 1
#define COD_REALTIME 16
#define COD_ADDPOINTS 128
#define COD_ALLOCHIDDEN 512
#define COD_REMOVE 2048
#define COD_SCROLL_REGEND 8192

#define CHART_TYPE_NOLEGINVALIDATE 8

#define REALTIMESETTING_STYLE_LOOPPOS 1
#define REALTIMESETTING_STYLE_NOWAITARROW 2

샘플프로그램 다운로드 - 귀차니즘에 의해, 주석이 별로 없지만.. 이해하시는데는 큰 무리가 없을 겁니다. 그리고, Trail 버전으로 테스트한 것이라 배포가 불가능하여, 샘플 프로그램 자체는 실행되지 않습니다. 단지, 코드 참조만으로 사용하시기 바랍니다.

ChartFX에 대한 보다 많은 정보:
http://www.softwarefx.co.kr

크리에이티브 커먼즈 라이센스
Creative Commons License

Trackback

Trackback Address :: http://www.nohungry.net/tt1/trackback/90

Comments

  1. acaran 2007/06/28 23:05

    흐음.. 언제나 신기하는걸 하는구려~ 또 한수 배우고 가오~

    perm. |  mod/del. |  reply.
    • NOhungry 2007/06/29 09:28

      ㅎㅎ 신기하기는.. 그나저나 우리 언제 한 번 보는거요? 같은 서울 땅에 살면서 너무 보기 힘든 것 아닌가?

  2. 2007/07/02 19:50

    마침 유용한 팁이구려..
    생물과 노가다를 이것으로 줄일수 있을 듯.. ㅎㅎ ^^

    perm. |  mod/del. |  reply.
    • NOhungry 2007/07/03 12:14

      역시 생물과의 포스란?ㄷㄷㄷ 그나저나 그래프를 그려야 하나?ㅎ 그럼 갠적으로 ProEssential도 괜찮다~ 자세한건 갠적으로 물어보도록.ㅋ

  3. 비밀방문자 2009/05/22 16:45

    관리자만 볼 수 있는 댓글입니다.

    perm. |  mod/del. |  reply.

What's on your mind?

댓글 입력 폼
[로그인][오픈아이디란?]