arx创建作用域(于)当前文档全局变量

Posted edata

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arx创建作用域(于)当前文档全局变量相关的知识,希望对你有一定的参考价值。

普通的全局变量是作用于整个AutoCAD程序中,所有的文档都将能存取,某些时候,我们需要某一个全局变量仅仅在当前文档有效,便于程序之间通信或者变量值记忆。

在高版本的objectARX向导中,已经为我们提供了一个继承类,CDocData,来至AcApDataManager,AcApDataManager来至AcApDocManagerReactor,大概原理是通过反应器,在切换文档的时候,记忆和保存当前的文档内全局变量。

通常情况下,通过向导会创建CDocData.h\\.cpp这两个文件,通过修改这个文件可以定义或扩展操作某些当前文档全局变量。

比如在定义一个CString的变量g_myName

在cpp文件中可以初始化成 “张三”

在命令执行的时候可以通过 DocVars.docData().g_myName 来存取数据

通过这样的方式,我们就 可以存取仅对当前文档有值的全局变量了,如果我们切换文档,那么在新的文档中,又会重新存取这个值,比如你在当前文档,这个值是张三,你又在新的文档中设置的值是李四,那么切换文档之后,每个文档都对应的是你设置的值。虽然都是g_myName这个变量,值都是不一样的。

通过这个原理,我们可以扩展出很多用法,比如两个程序之间传递参数,创建一个选择集,另外一个程序也可以访问者这个选择集。

以上是关于arx创建作用域(于)当前文档全局变量的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中变量的作用域

js作用域链以及全局变量和局部变量

JS 变量的作用域

Python 局部变量global,全局变量local ,非局部变量nonlocal ,Enclosing function locals作用域

一言难尽的js变量提升面试题

常见的全局变量定义