2009-03-05 4 views
3

Excel에서 ActiveX 컨트롤을 멋지게 인쇄하려고합니다.Excel에서 내 C++ ActiveX 컨트롤을 멋지게 인쇄하려면 어떻게해야합니까?

컨트롤은 C++로 작성되었습니다. 원래 Visual Studio 2005 마법사를 사용하여 컨트롤을 생성했습니다. 나는 OnDraw 함수를 실험하기위한 간단한 마법사 생성 컨트롤을 사용하여이를 테스트했으며, 마법사에서 곧바로 컨트롤이 잘 인쇄되지 않는다는 것을 발견했습니다. 기본적으로 검은 색 외곽선과 가운데에 일부 텍스트를 렌더링하는 컨트롤의 상당 부분을 잘라내는 것처럼 보입니다.

IDataObject_GetData 함수는 ActiveX 컨트롤에서 호출되어 메타 파일을 만들어 렌더링합니다.

누구든지 ActiveX 컨트롤을 멋지게 출력하는 방법을 알고 있습니까? 또는 유용한 정보에 대한 링크가 제공됩니다.

답변

2

많은 머리가 긁힌 후에 나는 내 문제에 대한 해결책을 알아 냈습니다.

Visual Studio 2005 마법사에서 생성 된 OnDraw 함수는 SelectClipRgn 함수를 호출하여 클리핑 영역을 설정합니다. 이 클리핑 설정으로 인해 ActiveX 컨트롤이 인쇄시 잘리는 것처럼 보였습니다. 코드를 주석 처리하면 ActiveX 컨트롤이 완벽하게 인쇄됩니다. 코드를 주석 처리하면 다른 문제가 발생하는 것으로 보이지 않습니다. 적어도 제 경우는 아닙니다.

클리핑에 사용되는 좌표계는 메타 파일 DC에 그리는 데 사용되는 좌표계와 호환되지 않는다고 가정 할 수 있습니다. 여기

내가 ActiveX 컨트롤을 인쇄하는 방법에 대한 발견 유용한 정보 몇 가지 링크입니다 :

http://www.codeproject.com/KB/COM/officeatlprint.aspx

http://www.codeproject.com/KB/COM/WirgerPrintArticle.aspx

http://support.microsoft.com/kb/81497

http://support.microsoft.com/kb/84984

관련 문제