前言
上一篇博文: AutoCAD VBA开发遇到的坑(一)
这次来更新第二篇了。相比上次赶鸭子上架学习AutoCAD vba,这次主要多了两个参考的东西,一个是《AutoCAD VBA&VB.NET开发基础与实例教程》和明经通道。
Declare Function一直编译错误?
vba借助windows api时需要通过declare语句引用windows api,按照Autodesk的开发手册的写法一直编译错误。这是因为我的cad2020的vba已经是vba7了,正确的写法是declare ptrsafe function,想兼容vba6的话,使用预编译。
动态数组如何判断为空
vba动态数组的声明:dim arr() as XX。在第一次调用时无法通过ubound来确定是否为空,isempty、isarray能方法也无效。我检索了半天,复杂的引入safeArray的作法我不喜欢,最后只好维护一个模块级别的变量flag判断是否初始化,或者N来记录arr的长度。
ShortcutMenu.AddMenuItem的Label怎么写?
在《AutoCAD VBA&VB.NET开发基础与实例教程》这本书10.2节有一个BeginShortcutMenuEdit event的例子。里面涉及到如何给编辑模式的右键菜单加我们自己的控件。其中Label这个形参可以绑定快捷键,正确的写法是,label = “change color(&c)”,这里change color是我自定义的名字,后面(&c)会被识别为快捷键c,实际显示为“cha