我们看到了在CDR中各种的功能可以组合在一起,有时我们希望同时改变非常多个形状,但是偶尔会希望用ctrl+z键来撤回刚才的一步操作,但是这个时候会发现只一次只能撤回一个, 有没有什么方法可以一次性撤回刚才的所有操作呢? 答案是有的.

我们把目光聚集到下面这个类上来

CorelDRAW.ActiveDocument.BeginCommandGroup

这里主要说的就是这个BeginCommandGroup,从英文名字上直译就是"命令群组的开始",对了,既然是这样的名字,那么有开始就还有一个结束,果不其然,这个结束就叫EndCommandGroup"命令群组的结束".

也就是说在这一头一尾两个功能之间的所有操作,CDRX4都会帮我们在一个叫作undoList的撤销列表里组合在一起,被视为只操作了一次, 所以我们使用ctrl+z就可以一次性撤销回来.
上代码:

Sub 第一个插件()tool.changeUnitCorelDRAW.ActiveDocument.BeginCommandGroupFor i = 1 To 10CorelDRAW.ActivePage.ActiveLayer.CreateRectangle 10 * i * 1.1, 20, 10 * i * 1.1 + 10, 10Next iCorelDRAW.ActiveDocument.EndCommandGroup
End Sub


我们先用一个从1到10的循环新建十个间距1.1的方框, 然后使用撤销,这样子就一次性撤销了

所以我们在所有的复杂功能里面都可以使用这个功能来将撤销步骤合并在一起,方便我们进行操作

CorelDRAWX4的VBA插件开发(十八)命令合并与一键多步撤销相关推荐

  1. CorelDRAWX4的VBA插件开发(十)多文件编程

    很多时候有若干个按钮,但是里面有相同的功能,比如上一节中所中用到的修改当前文档的度量单位为毫米这一功能,每一个功能都需要用到这个功能的时候,我们可以把它单独拉出来,放在另一个文件里面,用的时候只需要调 ...

  2. CorelDRAWX4的VBA插件开发(三十四)调用C++实现一键智能群组(第3节)主调函数以及三个被调函数

    这一节就进入到了群组的实质性的内容,先把群组Qunzu()函数展示一下 先展示主调函数Qunzu(),函数里面还有四个被调函数等会儿再说 BOOL Qunzu() {//undo开 这个是一键多步撤销 ...

  3. CorelDRAWX4的VBA插件开发(四) 用一个例子了解CORELDRAW-X4的四个基本对象

    CorelDRAWX4的VBA插件开发(四) 用一个例子了解CORELDRAW-X4的四个基本对象 1.打开第一章的界面如下图: 2.把之前的代码稍作修改 Sub 第一个插件()Dim zongShu ...

  4. CorelDRAWX4的VBA插件开发(二十四)复合选框组件与联合命名面板

    我们在处理文档的时候碰上的最多的问题就是与字符串相当的问题,这里再拿出来单把各种使用命名的小组件讲一下,我们先上效果图: 我们可以在上图看到最终结果,可以让一行文件名跟随各种组件进行更改,下下面我们先 ...

  5. CorelDRAWX4的VBA插件开发(四十六)VBA插入启动事件让CDR启动时检测并自动添加工具栏和按钮

    先上结果图,这个工具栏和按钮都是主程序自动生成的 在程序的运行当中,如果我们希望程序能够自己创建工具栏和按钮,可以在CDR启动事件中设置一个检测功能 Private Sub GlobalMacroSt ...

  6. CorelDRAWX4的VBA插件开发(四十四)建立类(1)汇总相似功能简化重复代码:一键建立设计外框加出血线和等分折页线

    这次主要来浅讲一下"类"这个功能,先上一下要实现的功能,建立设计外框加出血线和等分折页线,先上图 那什么是类呢?类其实就是CLASS,用来封装成员参数和函数的,拆开来里面就是这些东 ...

  7. CorelDRAWX4的VBA插件开发(二十五)多类目选择实现复合框内容置换

    有时候我们的复合框内的内容是有更多的需求,但是我们又不想另开一个窗口,怎么办呢,我们直接使用复合框内容替换就行啦 先上效果图: 先在面第板上拉出一个框架, 再在里面添加上三个选项按钮, 添加好之后这三 ...

  8. CorelDRAWX4的VBA插件开发(四十五)建立类(2)汇总相似功能简化重复代码:一键建立设计外框加出血线和等分折页线

    在上一节中已经建立好了类,那么这一节我们来调用它,先建立一个面板 然后修改框体名称 然后从左侧新建一些按钮并且以拼音为结尾进行命名 Private Sub CheckBox2_zheYe_Click( ...

  9. CorelDRAWX4的VBA插件开发(三十五)调用C++实现一键智能群组(第4节)递归调用框选工具

    上一节没有讲到的递归函数diguiSelect,这一单独列出来讲一下 INT diguiSelect(long count, DOUBLE LX, DOUBLE BY, DOUBLE RX, DOUB ...

  10. CorelDRAWX4的VBA插件开发(三十一)使用C++制作动态连接库DLL辅助VBA构键强大功能-(5)在VBA中动态调用DLL文件

    我们先来看一下动态调用的截图 先上代码 '静态调用 Public Declare Function wodedll Lib "E:\VS-DLL\conglingkaishi\Debug\C ...

最新文章

  1. 回滚到公共回购中的旧Git提交
  2. 不懂AI的我,是如何搞开发的?
  3. python使用pyodbc,freetds连接azure数据库
  4. 多索引表 (5)创建多索引表
  5. JUC多线程:系统调用、进程、线程的上下文切换
  6. 漫步者lollipods如何调节音量_漫步者MF5扩音器体验:老师值得入手
  7. 笔试知识点 网络安全_安全点
  8. Sqlite SQL格式化输入函数splite3_mprintf
  9. 一文详细分析公式树开源库
  10. python beautifulsoup报错bs4 FeatureNotFound Couldnot find a tree builder with the features
  11. 甲骨文超 IBM 成全球第二大软件公司
  12. 等比数列求和公式、性质
  13. winrar 5.80正式版全球发布
  14. seo站内优化的10点建议及分析处理方案
  15. 打印表格用什么软件好?
  16. python经典程序练习题-Python练习题(基础知识练习题(一))
  17. JS逆向加密——七麦网analysis参数
  18. 从 C++ 定义 QML 类型
  19. 深信服链路高可用与策略路由
  20. 2022中国“SaaS”领域十大趋势

热门文章

  1. 从零开始学英语 (洪恩教学光盘 8CD)
  2. 2019年7月28日解决战网BLZBNTBNA00000005BLZBNTBNA00000006BLZBNTBTS0000005DBLZBNTBTS0000004A 007D0 008A4 00840
  3. C语言练习,求x的y次方的代码
  4. 相亲交友小程序制作方案
  5. 【转】ubuntu12.04完美安装QQ2012、QQMusic、Foxmail等--wine
  6. psp2000 M33 自制固件---恢复模式说明(基本所有版本都适用)
  7. 基于java springboot框架的电子发票管理系统
  8. CSS网页切图实例教程下
  9. 2017山东省ACM省赛总结(校史首金!!)
  10. 二次无约束二值优化模型(The Quadratic Unconstrained Binary Optimization(QUBO) model)