【问题标题】:How can I make my C++ ActiveX control print nicely in Excel?如何使我的 C++ ActiveX 控件在 Excel 中很好地打印?
【发布时间】:2010-10-11 12:47:35
【问题描述】:

我试图让我的 ActiveX 控件在 Excel 中很好地打印出来。

该控件是用 C++ 编写的。最初,我使用 Visual Studio 2005 向导生成了控件。我已经用一个简单的向导生成的控件测试了它来试验 OnDraw 函数,我发现即使是直接从向导中取出的控件也不能很好地打印出来。它似乎剪掉了控件的大部分 - 默认情况下呈现黑色轮廓和中心的一些文本。

在我的 ActiveX 控件上调用 IDataObject_GetData 函数,该控件依次创建元文件并呈现给它。

有谁知道如何让 ActiveX 控件很好地打印出来?或者链接到有用的信息将不胜感激。

【问题讨论】:

    标签: c++ excel printing activex


    【解决方案1】:

    经过一番摸索,我找到了解决问题的方法。

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      • 2020-04-08
      • 2018-11-22
      • 2016-03-24
      相关资源
      最近更新 更多