代码之家  ›  专栏  ›  技术社区  ›  Ashley Davis

如何使我的C++ ActiveX控件在Excel中打印得很好?

  •  3
  • Ashley Davis  · 技术社区  · 15 年前

    我正试图让我的activex控件在excel中很好地打印出来。

    控件是用C++编写的。最初,我使用visual studio 2005向导生成控件。我已经用一个简单的向导生成的控件测试了这个,以测试ondraw函数,我发现即使是直接从向导中输出的控件也打印不好。它似乎剪掉了控件的很大一部分-默认情况下,它会呈现黑色的轮廓和中间的一些文本。

    函数idataobject_getdata在我的activex控件上被调用,它反过来创建一个元文件并呈现给它。

    有人知道如何让activex控件很好地打印出来吗?另外,我们也希望能提供有用信息的链接。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Ashley Davis    15 年前

    我绞尽脑汁想办法解决我的问题。

    这个 OnDraw 由visual studio 2005向导生成的函数通过调用 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