在 CorelDRAW 中,对象模型是按照一定的层次结构来组织的,如果你要使用 VBA 对CorelDRAW 二次开发,那么必须了解 CorelDRAW 中的对象模型。
本文全是手机打字(车站等车时),内容不多,还请耐心看完,相信你一定会有所收获。
首先必须明确,Application 这个对象是最顶层的对象,代表整个 CorelDRAW 应用程序(就是你当前使用的这个软件本身)。
其次,CorelDRAW 中最主要的一些对象为 Document(文档)、Page(页面)、Layer(图层)、Shape(形状)。
主要的模型结构可以如下描述:
Application(应用程序)对象包含了所有打开的 Document(文档)集合。当一个 CDR文件(就是文档,说成文件便于大家理解)被打开后,这个 CDR文件就会作为一个 Document 对象,被添加到 Application 对象的文档集合中。
对于每一个 Document 对象来说,它包含了这个文档所有的 Page(页面)对象集合。你在 CorelDRAW 文档中创建的每一个页面,都对应着一个 Page 对象。
对于每一个 Page 对象来说,它包含了这个页面所有的 Layer(图层)对象集合。你在页面中创建的每一个图层,都对应着一个 Layer 对象。
对于每一个 Layer 对象来说,它包含了这个图层所有的 Shape(形状)对象集合。你在图层中创建的每一个形状,都对应着一个 Shape 对象。Shape 对象是一个抽象的称呼,通常可以这样简单理解:凡是能够在页面上绘制的图形都是 Shape,包括矩形、美术字文本、段落文本、贝塞尔曲线、位图等等。Shape 有各种各样的类型,通过它的 Type 属性可以判断它是什么类型的形状。
简单总结一下,Application 对象包含了所有的文档对象,而文档对象又包含了该文档所有的页面对象,每个页面对象都有一组图层对象,每个图层对象上才是你绘制的具体形状。
因此,当你创建了一个CDR文档(自动激活成为 ActiveDocument),默认就会有一个页面,该页面有默认的图层。当你在该页面(ActivePage)上绘制一个矩形框时,实际上就是在这个页面的当前图层(ActiveLayer)上创建了一个 Shape 对象(类型为矩形),这样说大家应该好理解吧?
最后,再补充说明一下 CorelDRAW 对象模型里面提供的过滤器对象(Filter Object)。过滤器对象主要是用来提供对除了 CorelDRAW 以外的其他图形应用程序的支持(例如 illustrator,PhotoShop)。Layer(图层)对象提供了导入过滤器(ImportFilter),而 Document(文档)对象提供了导出过滤器(ExportFilter)。
附上一张X7的对象模型结构图(部分),因为无法上传文件,有需要参考的可以找我要PDF。

本文全是手机打字(车站等车时),内容不多,还请耐心看完,相信你一定会有所收获。
首先必须明确,Application 这个对象是最顶层的对象,代表整个 CorelDRAW 应用程序(就是你当前使用的这个软件本身)。
其次,CorelDRAW 中最主要的一些对象为 Document(文档)、Page(页面)、Layer(图层)、Shape(形状)。
主要的模型结构可以如下描述:
Application(应用程序)对象包含了所有打开的 Document(文档)集合。当一个 CDR文件(就是文档,说成文件便于大家理解)被打开后,这个 CDR文件就会作为一个 Document 对象,被添加到 Application 对象的文档集合中。
对于每一个 Document 对象来说,它包含了这个文档所有的 Page(页面)对象集合。你在 CorelDRAW 文档中创建的每一个页面,都对应着一个 Page 对象。
对于每一个 Page 对象来说,它包含了这个页面所有的 Layer(图层)对象集合。你在页面中创建的每一个图层,都对应着一个 Layer 对象。
对于每一个 Layer 对象来说,它包含了这个图层所有的 Shape(形状)对象集合。你在图层中创建的每一个形状,都对应着一个 Shape 对象。Shape 对象是一个抽象的称呼,通常可以这样简单理解:凡是能够在页面上绘制的图形都是 Shape,包括矩形、美术字文本、段落文本、贝塞尔曲线、位图等等。Shape 有各种各样的类型,通过它的 Type 属性可以判断它是什么类型的形状。
简单总结一下,Application 对象包含了所有的文档对象,而文档对象又包含了该文档所有的页面对象,每个页面对象都有一组图层对象,每个图层对象上才是你绘制的具体形状。
因此,当你创建了一个CDR文档(自动激活成为 ActiveDocument),默认就会有一个页面,该页面有默认的图层。当你在该页面(ActivePage)上绘制一个矩形框时,实际上就是在这个页面的当前图层(ActiveLayer)上创建了一个 Shape 对象(类型为矩形),这样说大家应该好理解吧?
最后,再补充说明一下 CorelDRAW 对象模型里面提供的过滤器对象(Filter Object)。过滤器对象主要是用来提供对除了 CorelDRAW 以外的其他图形应用程序的支持(例如 illustrator,PhotoShop)。Layer(图层)对象提供了导入过滤器(ImportFilter),而 Document(文档)对象提供了导出过滤器(ExportFilter)。
附上一张X7的对象模型结构图(部分),因为无法上传文件,有需要参考的可以找我要PDF。
