사용자 도구


Chart FX

Software FX에서 개발한 차트 라이브러리.

Visual Studio 2008의 MFC에서 사용하는 방법

Chart FX 7.0의 경우 COM버전이 없기 때문에 (2012. 4 기준) C#, VB가 아닌 다른 언어에서 이용하기 힘든 점이 있다. 하지만 Windows form 컨트롤 호스팅 방법을 사용하면 MFC에서도 사용 가능하다.

NET 사용자 정의 컨트롤 생성

  1. 새 Visual C# Windows 컨트롤 라이브러리 프로젝트를 만든다. 여기에서는 프로젝트 이름을 WindowsFormsControlLibrary1 라고 가정한다. 새 프로젝트 대화 상자에서 Visual C# 폴더의 Windows Form 컨트롤 라이브러리를 선택 후 확인 버튼을 클릭한다.
    이 때 프로젝트의 이름이 생성될 DLL의 파일명이 된다.
  2. UserControl1에 하위 컨트롤을 추가한다.
    오른쪽 도구 상자에서 Chart FX 목록의 Chart를 UserControl1 디자인 화면에 끌어 놓는다. Chart가 보이지 않는다면 Chart FX 목록의 빈 공간을 마우스 오른쪽 버튼 클릭 후 항목 선택을 클릭하고 Chart (네임스페이스 : ChartFX.WinForms)를 체크한다.
  3. Chart 클릭 후 속성 화면에서 적절히 속성을 편집한다. 이 때 디자인 탭의 Name 값이 MFC에서 Chart 컨트롤 시 사용하게 되는 변수명이 된다. 여기에서는 Name을 chart1이라 가정한다.
  4. UserControl1.Designer.cs 파일에서 Chart의 선언을 private이 아닌 public으로 변경한다.
  5. 프로젝트를 빌드한다. 배포용으로 만들기 위해서는 Release로 빌드한다. 빌드 후 프로젝트의 디렉토리에 DLL 파일이 생성된다.

MFC에 Chart FX 추가

  1. 추가할 MFC 프로젝트 폴더에 DLL, XML 파일을 모두 복사한다.
  2. 프로젝트 속성 대화 상자를 연 후 구성 속성 – 일반을 선택한 다음 프로젝트 기본값 섹션에서 공용 언어 런타임 지원을 공용 언어 런타임 지원(/clr)으로 설정한다.
    마찬가지로 공용 속성 – 프레임워크 및 참조를 선택한 후 새 참조 추가를 클릭한다. 대화 상자에서 찾아보기 탭을 클릭하고 생성된 DLL 파일을 선택한다. 여기에서는 WindowsFormsControlLibrary1.dll을 선택하면 된다.
  3. stdafx.h에서 다음 줄을 찾는다.
    #endif // _AFX_NO_AFXCMN_SUPPORT

    위에서 찾은 줄 위에 다음 코드를 추가한다.

    #include <afxwinforms.h> // MFC Windows Forms support
  4. Chart FX 컨트롤을 선언한다. 다음과 같은 방식으로 적절한 class에 선언하면 된다.
    CWinFormsControl<WindowsControlLibrary1::UserControl1> m_ctrl1;
  5. 정적 컨트롤과 컨트롤을 연결하기 위해서는 다음과 같은 방식의 코드를 DoDataExchange 함수에 추가하면 된다.
    DDX_ManagedControl(pDX, IDC_CTRL1, m_ctrl1);

주의

/clr 옵션으로 컴파일하면서 vararg (함수의 가변 인자) 를 사용할 수 없다.

참고

배포

  1. .net Framework 4 설치 (아래의 Windows SDK를 설치 하기 위해 필요)
    http://go.microsoft.com/fwlink/?LinkID=187668
  2. (필요 없는 듯) 최신 버전의 Windows Software Development Kit 설치
    http://msdn.microsoft.com/en-us/windows/bb980924.aspx
    lc.exe 실행을 위해 SDK가 필요할 수 있으나 Visual Studio를 설치한 경우 자동으로 설치됨
  3. 프로젝트의 Release 폴더에 빈 Licenses.licx 파일 생성 후 메모장을 이용해 다음과 같이 내용 편집
    ChartFX.WinForms.Chart, ChartFX.WinForms

    의미 : <클래스 이름, DLL 파일 이름>

  4. Visual Studio 또는 Windows SDK의 Command Prompt 실행.
    Visual Studio 2008인 경우 시작 – 프로그램 – Microsoft Visual Studio 2008 – Visual Studio Tools 폴더 아래에 있다.
  5. 프로젝트의 Release 폴더로 이동 후 다음과 같이 실행
    lc /target:<Name of your Executable.exe> /complist:licenses.licx /i:ChartFX.WinForms.DLL
  6. 생성된 Executable.licenses 파일을 프로젝트 폴더 아래로 이동
  7. 프로젝트를 Visual Studio로 연 후 프로젝트 속성(Properties) – 링커(Linker) – 입력(Input) – 관리되는 리소스 파일 포함(Embed Managed Resource File)에 Executable.licenses 파일 추가
    프로젝트 폴더 아래의 ChartFX 폴더에 Executable.licenses 파일을 복사한 경우 ./ChartFX/ Executable.licenses 입력
  8. 컴파일한 후 ChartFX가 설치되지 않은 컴퓨터에서 실행 확인

참고